gpt4 book ai didi

android - 具有跨平台单点登录配置的服务器端访问不清楚

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:37 26 4
gpt4 key购买 nike

我无法理解 Android Google+ Sign in documentation

我想用 Server-side access for your app 支持“使用 Google 登录”我也想支持Cross-platform single sign on .但是,我不清楚我是否真的可以同时执行这两项操作,因为一个是使用 GoogleApiClient.connect(),另一个是 GoogleAuthUtil.getToken()

如果我尝试同时使用 GoogleAuthUtil.getToken() 获取离线 token ,并使用 GoogleApiClient.connect() 进行跨平台单点登录,用户使用许可屏幕提示两次。(我还必须设置两倍的服务器客户端 ID 和范围,这很愚蠢)

有什么想法吗?我做错了什么吗?

最佳答案

好消息是你想做的事得到了支持!

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

GoogleApiClient.connect()只会在用户尚未授予您的应用程序权限时请求权限。 GoogleAuthUtil.getToken("oauth2:server:client_id:<server client-id>:api_scope:<scope1> <scope2>")每次都会请求权限,因为您正在为您的服务器请求离线访问(刷新 token )。

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

Ian Barber 写了一篇博文解释实现这个流程的方法:

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

该帖子以 PlusClient 的形式进行讨论现在已弃用 GoogleApiClient , 但流程仍然有效。

关于android - 具有跨平台单点登录配置的服务器端访问不清楚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21901697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com