iOS谷歌登录不';不能在新范围内正常工作
在中,他们说开发人员需要从以下范围迁移:iOS谷歌登录不';不能在新范围内正常工作,ios,google-app-engine,oauth-2.0,google-login,gtm-oauth2,Ios,Google App Engine,Oauth 2.0,Google Login,Gtm Oauth2,在中,他们说开发人员需要从以下范围迁移: https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile email profile 而是使用这些作用域: https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile email pro
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
email
profile
而是使用这些作用域:
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
email
profile
但是,在我的应用程序引擎后端执行此操作后,我的iOS应用程序出现了问题。在第一次运行时,它会要求我登录,屏幕会正确显示两个作用域,然后应用程序就会正常运行。在第二次运行时,它应该从受保护的存储中检索授权凭据,但它不工作,因为App Engine服务器正在接收端点中用户参数的null
appengine端点需要电子邮件
和配置文件
范围。用于检索以前凭据的iOS代码为:
GTMOAuth2Authentication* auth =
[GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:AUTH_KEYCHAIN_NAME
clientID:Constants.IOS_CLIENT_ID
clientSecret:Constants.IOS_CLIENT_SECRET];
viewController = [[GTMOAuth2ViewControllerTouch alloc]
initWithScope:Constants.EMAIL_SCOPE
clientID:Constants.IOS_CLIENT_ID
clientSecret:Constants.IOS_CLIENT_SECRET
keychainItemName:AUTH_KEYCHAIN_NAME
delegate:self
finishedSelector:@selector(viewController:finishedWithAuth:error:)];
如果没有以前的凭据,则用于身份验证的iOS代码为:
GTMOAuth2Authentication* auth =
[GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:AUTH_KEYCHAIN_NAME
clientID:Constants.IOS_CLIENT_ID
clientSecret:Constants.IOS_CLIENT_SECRET];
viewController = [[GTMOAuth2ViewControllerTouch alloc]
initWithScope:Constants.EMAIL_SCOPE
clientID:Constants.IOS_CLIENT_ID
clientSecret:Constants.IOS_CLIENT_SECRET
keychainItemName:AUTH_KEYCHAIN_NAME
delegate:self
finishedSelector:@selector(viewController:finishedWithAuth:error:)];
这过去很管用!现在,App Engine服务器将电子邮件范围从../userinfo.email
更改为email
,配置文件范围从../userinfo.profile
更改为profile
。iPad应用程序对新后端显示相同的行为,并将常量设置为任意一个值
googleapi objectivec客户端
库是最新的v0510
我的应用程序的Android版本在后端更改后仍然可以正常工作,没有任何代码更改
更新2015-02-26:目前正在使用谷歌api objectivec客户端的r424(2014-12-30)。没有变化。如果AppEngine后端正在使用新的“配置文件”和“电子邮件”作用域,则iOS应用程序无法在第二次(或更高版本)运行时进行身份验证,因为它正在从应用商店加载凭据,而不是通过登录流
第一个(登录凭据)的AppEngine日志显示:
第二个(已加载凭据)的AppEngine日志显示:
此异常不会向上传播<为用户返回code>null
要使GTMOAuth2ViewControllerTouch
在新范围内正常工作,是否还需要执行其他操作?或者可能是出现了问题