【问题标题】:Will an old refresh token still be valid if a new refresh token get issued?如果颁发了新的刷新令牌,旧的刷新令牌是否仍然有效?
【发布时间】:2021-03-11 22:33:33
【问题描述】:

我的应用程序使用 Google 刷新令牌(从 Google 获取 access_token)。我有两个问题:

  1. 我知道 Google 刷新令牌不会过期 6 个月 (see the doc here);假设我在 1 月 1 日下午 5:00 获得了一个刷新令牌 refresh_token_old,而我的应用程序在 1 月 1 日下午 5:30(即仅 30 分钟后)向 Google 请求另一个刷新令牌 refresh_token_new,旧的刷新令牌会不会仍然有效(显然旧的还没有过期)? -- 基本上,我问的是新发行的 refresh_token 是否清除了旧的 refresh_token 的有效性;
  2. 对于我使用refresh_token_old从谷歌获得的访问令牌access_token_a,在我的应用请求新的新令牌refresh_token_new后它仍然有效吗? -- 基本上,我问的是新的 refresh_token 是否会清除旧的 refresh_token 获得的 access_token 的有效性,即使该 access_token 尚未过期;

【问题讨论】:

    标签: oauth-2.0 google-api google-oauth access-token refresh-token


    【解决方案1】:
    • 如果六个月未使用刷新令牌,它将过期。使用后,六个月的计时器将重置。
    • 如果您请求刷新令牌,那么您的应用程序会请求另一个刷新令牌,从技术上讲,您有两个未完成的刷新令牌,两者都可以工作。您可以继续执行此操作,并在达到该点后立即拥有多达 50 个常设刷新令牌,第一个刷新令牌将过期。
    • 使用任何刷新令牌创建的任何访问令牌都可以使用一个小时。即使创建它的刷新令牌在那一小时内已过期。创建访问令牌后,无论如何它都会工作一个小时。

    【讨论】:

    • 感谢您的清晰回答,非常有帮助!我怎样才能使所有未完成的 refresh_token 无效(比如说,我怀疑有人抓住了它)?
    • 如果您想全部撤销它们,请让用户撤销您对其帐户的权限。或者调用 Revoke 端点。除非有人还掌握了您的客户端 ID 和客户端密码,并且可以访问您在 Google 开发者控制台中配置的端点,否则他们真的无法使用刷新令牌做任何事情。
    猜你喜欢
    • 1970-01-01
    • 2021-08-20
    • 2023-02-02
    • 2014-01-21
    • 2022-11-22
    • 2016-01-05
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多