【问题标题】:Google OAuth2 Refresh_token expires when Access_token doesGoogle OAuth2 Refresh_token 在 Access_token 过期时过期
【发布时间】:2013-05-16 00:05:48
【问题描述】:

根据https://groups.google.com/forum/#!forum/oauth2-dev 讨论现在在这里。

无论我读了多少书,我都无法理解 google OAuth2 令牌的工作原理。阅读文档和许多其他地方表明 refresh_token 不会过期,并且在 access_token 过期后使用。请参阅https://developers.google.com/accounts/docs/OAuth2WebServer#refresh的官方文档

然而,在实践中,当访问令牌过期时,刷新令牌也会过期,这似乎与 Paul (Unable to refresh token after expiration) 所描述的一样工作。

请 Google 工程师确认正确的行为应该是什么,因为这似乎是行为和文档不匹配的情况。

这也使刷新令牌无用。

【问题讨论】:

    标签: google-oauth


    【解决方案1】:

    如果您在向https://accounts.google.com/o/oauth2/auth 发出初始请求时请求access_type=offline,那么您将获得一个刷新令牌以及访问令牌。 This is documented here.

    刷新令牌不会过期,直到用户从Account -> Security -> "Connected applications and sites" 页面明确撤消对它的访问权限。

    您链接到的另一篇文章似乎与 SoundCloud 相关,这可能会有所不同。

    【讨论】:

    • 谢谢院长。通过使用 Google Oauth2 Playground 进行一些调查后,我可以确认 refresh_tokens 在访问令牌过期后都有效,并且无论访问令牌的状态如何都可以使用。 (有人建议在 access_token 过期之前它不会起作用)。我的困难似乎是我正在使用的库转义 refresh_token,然后在显示令牌时由库进一步转义。使用 OAuth2 游乐场,我意识到我的令牌看起来不正确,因为它们有额外的转义字符
    • 即使使用 access_type=offline 我也无法获得刷新令牌 :( stackoverflow.com/questions/27678496/…
    • 是我们可以在使用它之前检查我的刷新访问令牌是否被撤销的一种方式..?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2023-03-08
    • 1970-01-01
    • 2018-04-07
    • 2018-12-25
    • 2015-09-10
    相关资源
    最近更新 更多