我正在尝试将GoogleSignIn框架集成到iOS应用中,并且还要对服务器上的用户进行身份验证。我设法登录了用户,但是在- (void)signIn:(GIDSignIn *)signIn didSignInForUser:(GIDGoogleUser *)user withError:(NSError *)error委托(delegate)方法中,user.serverAuthCodenil,我需要将此服务器身份验证代码传递给uhm,以对服务器上的用户进行身份验证。

我阅读了this documentation page,它指出必须设置serverClientID[GIDSignIn sharedInstance]属性,但是哪里没有,它说明了在哪里可以找到此“服务器客户端ID”。我用世界上所有的 key 进行测试都无济于事。

然后,我发现this documentation page看起来像是在试图告诉我们在哪里可以找到这个神奇的id,但是它使用的措辞很差并且没有帮助。我确实拥有Web application类型的OAuth2凭据,但是:

  • 它们用于与我的iOS应用相对应的Web(客户端)应用,该应用也与服务器
  • 通信
  • 我尝试使用它,但是没有用。

  • 是否有人成功地摆脱了Google(糟糕)文档的魔掌?

    最佳答案

    您需要确保设置了[GIDSignIn sharedInstance].serverClientID属性;该值可以在Google API控制台中找到。

    另外,如果您获得的user.serverAuthCode具有nil值,请确保在进行任何后续尝试之前调用了[[GIDSignIn sharedInstance] signOut];。否则,[GIDSignIn sharedInstance]似乎会记住先前的配置。

    我在模拟器中获取serverAuthCode没问题。

    09-25 18:23