https://developers.google.com/+/mobile/ios/sign-in#enable_server-side_api_access_for_your_app
let GoogleSignIn = GPPSignIn.sharedInstance() GoogleSignIn.clIEntID = GoogleClIEntID GoogleSignIn.attemptSSO = true GoogleSignIn.homeServerClIEntID = GoogleServerClIEntID GoogleSignIn.scopes = ["https://www.GoogleAPIs.com/auth/plus.login","https://www.GoogleAPIs.com/auth/plus.profile.emails.read"] GoogleSignIn.delegate = self GoogleSignInbutton.colorScheme = kGPPSignInbuttoncolorSchemelight GoogleSignInbutton.style = kGPPSignInbuttonStyleWIDe
当用户第一次登录时,它要求正确的权限并返回IDToken,该IDToken被转发到服务器并交换为access_token / refresh_token.
但是,在调用GPPSignIn.sharedInstance().signOut()之后,再次登录将始终要求“具有脱机访问”权限.
我已经阅读了一些引用此内容的其他SO帖子,其中大多数引用了URL参数“approval_prompt”和“access_type”.鉴于我使用的是iOS SDK,我无法设置这些参数.
应用程序在Web视图中路由到的URL是:
https://accounts.Google.com/o/oauth2/auth?gpsdk=1.7.1&audIEnce=<server-clIEnt-ID>&response_type=code&verifIEr=94014002&scope=https%3A%2F%2Fwww.GoogleAPIs.com%2Fauth%2Fplus.login%20https%3A%2F%2Fwww.GoogleAPIs.com%2Fauth%2Fplus.profile.emails.read&gpbtn=1.1&hl=en&redirect_uri=<redirect_uri>&clIEnt_ID=<clIEnt-ID>&state=702574
我在服务器端有相同的范围(“登录”和“电子邮件”),我无法弄清楚我还需要做什么,所以它并不总是要求获得离线访问权限.
解决方法@H_502_32@ 我知道您使用的是Google的iOS SDK.您所说的是Google Api的默认行为.
使用以下解决方案,您可以将“approval_prompt = force”和“access_type = offline”参数添加到URL.
解:
为了添加这些参数,您必须修改GTMOAuth2SignIn.m并将“paramsDict”替换为以下NSMutableDictionary:
NSMutableDictionary *paramsDict = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"code",@"response_type",clIEntID,@"clIEnt_ID",scope,@"scope",@"force",@"approval_prompt",@"offline",@"access_type",nil];
我相信在此之后您的问题将得到解决.
更新:
对于GPPSignin类的使用,您应该检查是否可以使用trySilentAuthentication.
这个API检查是否可以在没有用户交互的情况下登录.
有关trySilentAuthentication的说明
当您调用authenticate时,sdk会在用户的钥匙串中保存长期存在的令牌,以及用于进行API调用的短期令牌.调用trySilentAuthentication检查长期令牌是否在密钥链中,并生成新的短期令牌.如果成功,则意味着用户之前已在该设备上登录该应用程序,因此您通常希望对此进行适当的响应.如果它失败(没有令牌)它将只返回false,或者如果它不能生成一个短生命令牌,它将调用finisheDWithAuth:error并设置错误.
总结以上是内存溢出为你收集整理的iOS:GPPSignInButton始终要求“具有脱机访问权限”权限全部内容,希望文章能够帮你解决iOS:GPPSignInButton始终要求“具有脱机访问权限”权限所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)