我正在尝试将GoogleSignIn
框架集成到iOS应用中,并且还要对服务器上的用户进行身份验证。我设法登录了用户,但是在- (void)signIn:(GIDSignIn *)signIn didSignInForUser:(GIDGoogleUser *)user withError:(NSError *)error
委托(delegate)方法中,user.serverAuthCode
是nil
,我需要将此服务器身份验证代码传递给uhm,以对服务器上的用户进行身份验证。
我阅读了this documentation page,它指出必须设置serverClientID
的[GIDSignIn sharedInstance]
属性,但是哪里没有,它说明了在哪里可以找到此“服务器客户端ID”。我用世界上所有的 key 进行测试都无济于事。
然后,我发现this documentation page看起来像是在试图告诉我们在哪里可以找到这个神奇的id,但是它使用的措辞很差并且没有帮助。我确实拥有Web application
类型的OAuth2凭据,但是:
是否有人成功地摆脱了Google(糟糕)文档的魔掌?
最佳答案
您需要确保设置了[GIDSignIn sharedInstance].serverClientID
属性;该值可以在Google API控制台中找到。
另外,如果您获得的user.serverAuthCode
具有nil
值,请确保在进行任何后续尝试之前调用了[[GIDSignIn sharedInstance] signOut];
。否则,[GIDSignIn sharedInstance]
似乎会记住先前的配置。
我在模拟器中获取serverAuthCode
没问题。