ios – Objective-C中的Google用户serverAuthCode nil

我正在尝试将GoogleSignIn框架集成到iOS应用程序中,并对服务器上的用户进行身份验证.我设法登录用户,但在 – (void)signIn:(GIDSignIn *)signIn didSignInForUser:(GIDGoogleUser *)用户withError:(NSError *)错误委托方法,user.serverAuthCode为nil,我需要通过此服务器身份验证代码,嗯,验证服务器上的用户.

我读了this documentation page,它声明我必须设置[GIDSignIn sharedInstance]的serverClientID属性,但是它没有说明我在哪里找到这个“服务器客户端ID”.我用世界上所有的密钥进行测试都无济于事.

然后我发现this documentation page看起来它试图告诉我们在哪里可以找到这个神奇的id,但是它使用了不好的措辞并没有帮助.我有类型Web应用程序的OAuth2凭据,但是:

>它们用于Web(客户端)应用程序,它与我的iOS应用程序相对应,后者也与服务器通信
>我尝试使用它,但它没有用.

有没有人设法成功逃脱谷歌(可怜)文档的魔力?

解决方法

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

另外,如果你有一个nil值的user.serverAuthCode,请确保你调用了[[GIDSignIn sharedInstance] signOut];在任何后续尝试之前.否则[GIDSignIn sharedInstance]似乎记得以前的配置.

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...