谷歌OAuth1到OAuth2的迁移-再次显示同意屏幕



我遵循了OAuth1到OAuth2的迁移文档,能够获得新的refresh_token和access_token。

问题是,谷歌再次显示审批屏幕并列出所有范围。迁移凭据的全部目的是用户不应该看到批准屏幕。

这是我的POST迁移请求:

岗位https://accounts.google.com/o/oauth2/tokenHTTP://1.1授权:OAuth领域=",OAuth_consumer_key=[CONUSERKEY]",oauth_nonce="2c06a5da90ec4a62b737bdfb3922d675",oauth_signature_method="HMAC-SHA1",oaauth_timestamp="1411677478",oaAuth_token="[oauthTOKEN]",oauth_signature="oL%2b2JdOBCKcND8cSHSmHQMR5NI%3d"内容类型:application/x-www-form-urlencoded主机:accounts.google.com内容长度:194预计:100继续连接:保持活动grant_type=urn%3ietf%3params%3oauth%3授予类型%3迁移%3oauth1&client_id=&client_secret=[生成签名]

此外,如果我检查https://security.google.com/settings/security/permissions?pli=1页面查看我已授予访问哪个应用程序的权限,我在那里看到我的新应用程序,以及旧应用程序的所有作用域。

我还确保我不包括approval_promt=force

有什么想法吗?我认为用户在迁移后不会看到批准屏幕,这是不是错了?

您是对的,迁移凭据的目的是用户不应该看到批准屏幕。但是,如果您添加了任何新的作用域,可能是为了使用一些API,其中大多数都需要用户授予权限,因此将再次显示批准屏幕。

您能说明步骤吗?用户什么时候看到批准页面?迁移后,您的OAuth2令牌具有哪些作用域?

迁移针对的是您已存储在后端的OAuth1令牌。通过迁移步骤,您可以将这些内容转换为OAuth2刷新令牌。你可以开始使用这些来调用谷歌API,而无需用户出现在你的网站上。

根据您获取这些OAuth1令牌的方式,您需要更改该机制以开始获取OAuth2令牌。通常,您只想为尚未存储刷新令牌的用户执行此操作,因为获取新的刷新令牌毫无意义(如果您这样做,他们可能会看到批准屏幕)。

最新更新