我想用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 – 服务器端访问与跨平台单点登录配置不清楚全部内容,希望文章能够帮你解决android – 服务器端访问与跨平台单点登录配置不清楚所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)