首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器端访问与跨平台单点配置不清楚

服务器端访问与跨平台单点配置不清楚
EN

Stack Overflow用户
提问于 2014-02-20 08:04:11
回答 1查看 565关注 0票数 4

我很难理解Android Google+登录文档

我想支持服务器端访问您的应用程序的“与谷歌签约”,我也想支持跨平台单点登录。但是,还不清楚我是否真的可以做到这两种方式,因为一种是使用GoogleApiClient.connect(),另一种是使用GoogleAuthUtil.getToken()

如果我尝试同时使用GoogleAuthUtil.getToken()来获取跨平台单点登录的离线令牌和GoogleApiClient.connect(),则用户将使用权限屏幕两次提示。(我还必须设置两次服务器客户端id和范围,这两次设置的范围都是哑的)

有什么想法吗?,我是不是做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-20 16:37:07

好消息是,你想做的事情是支持的!

您之所以两次看到权限提示,是因为在解决服务器端问题(GoogleApiClient.connect()问题)之前解决客户端问题(GoogleAuthUtil.getToken()问题)。

只有当用户尚未向您的应用程序授予权限时,GoogleApiClient.connect()才会请求权限。GoogleAuthUtil.getToken("oauth2:server:client_id:<server client-id>:api_scope:<scope1> <scope2>")每次都会请求权限,因为您请求的是服务器的脱机访问(刷新令牌)。

要确保只看到权限屏幕一次,必须首先检查服务器是否需要访问令牌,如果不需要,则使用GoogleAuthUtil.getToken()请求访问令牌(这将向用户显示权限屏幕)。一旦确保服务器具有有效的刷新令牌,就可以调用不显示权限屏幕的GoogleApiClient.connect()

伊恩·巴伯( Ian )写了一篇博文,解释了实现这一流程的方法:

http://www.riskcompletefailure.com/2013/10/google-android-client-server-sign-in.html

post以PlusClient的方式进行谈判,现在已经被GoogleApiClient否决了,但是这个流程仍然有效。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21901697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档