标签:android google-play-services google-plus
我无法理解Android Google+ Sign in documentation
我想用Server-side access for your app支持“用Google登录”,我也想支持Cross-platform single sign on.但是我不清楚我是否真的可以同时使用GoogleApiClient.connect()和另一个GoogleAuthUtil.getToken ().
如果我尝试同时使用GoogleAuthUtil.getToken()获取离线令牌,并使用GoogleApiClient.connect()进行跨平台单点登录,则用户会在权限屏幕上提示两次.
(我还必须设置两次服务器客户端ID和范围接缝愚蠢)
有什么想法吗?我做错了吗?
解决方法:
好消息是你想要做的事情得到支持!
您看到两次权限提示的原因是您在解析服务器端问题(GoogleAuthUtil.getToken()问题之前)解决客户端问题(GoogleApiClient.connect()问题).
GoogleApiClient.connect()仅在用户尚未授予您的应用权限时才会要求权限. GoogleAuthUtil.getToken(“oauth2:server:client_id:< server client-id>:api_scope:< scope1>< scope2>”)每次都会请求权限,因为您正在为您请求脱机访问(刷新令牌)服务器.
为确保您只看到一次权限屏幕,您必须先检查您的服务器是否需要访问令牌,如果没有,请先使用GoogleAuthUtil.getToken()请求服务器(这将向用户显示权限屏幕).确保服务器具有有效的刷新令牌后,您可以调用GoogleApiClient.connect(),这将不会显示权限屏幕.
伊恩·巴伯写了一篇博文,解释了实现这种流程的方法:
http://www.riskcompletefailure.com/2013/10/google-android-client-server-sign-in.html
该帖子以PlusClient方式进行谈判,现在已弃用GoogleApiClient,但该流程仍然有效.
标签:android,google-play-services,google-plus 来源: https://codeday.me/bug/20190629/1322993.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。