【问题标题】:google oauth2: re-acquiring a refresh_token for an authorized user on a web server applicationgoogle oauth2:为 Web 服务器应用程序上的授权用户重新获取 refresh_token
【发布时间】:2012-05-30 23:53:11
【问题描述】:

我在网络服务器上使用 oauth2,流程完美无缺(https://developers.google.com/accounts/docs/OAuth2WebServer)。

但是,在某些情况下,我需要重新获取 refresh_token(例如,refresh_token 已“丢失”)。

在这种情况下,当我再次通过第 1 和第 2 阶段时,我只会获得 access_token 而不是 refresh_token。 如果用户通过他的谷歌账户控制台撤销权限并再次经历第 1 和第 2 阶段,我将获得一个新的 refresh_token。

这是已知的 oauth2 行为吗?有没有办法强制使用新的 refresh_token 或再次获得相同的?

【问题讨论】:

    标签: oauth-2.0 google-contacts-api


    【解决方案1】:

    来自https://developers.google.com/accounts/docs/OAuth2WebServer

    重要提示:当您的应用程序收到刷新令牌时,请务必存储该刷新令牌以供将来使用。如果您的应用程序丢失了刷新令牌,则它必须在获取另一个刷新令牌之前重新提示用户同意。 如果您需要重新提示用户同意,请在授权码请求中包含approval_prompt参数,并将值设置为强制。

    【讨论】:

      【解决方案2】:

      黄油答案是here。您必须在您的令牌发布请求中添加参数approval_prompt=force

      【讨论】:

        猜你喜欢
        • 2015-05-27
        • 2018-01-22
        • 2017-03-11
        • 1970-01-01
        • 2013-08-21
        • 2019-01-13
        • 1970-01-01
        • 1970-01-01
        • 2017-12-27
        相关资源
        最近更新 更多