【问题标题】:Podio Oauth - refresh token lifespanPodio Oauth - 刷新令牌寿命
【发布时间】:2017-06-04 00:51:15
【问题描述】:

我目前正在研究 Podio 集成,我偶然发现一些文章没有给出明确的答案,refresh_token 是否会自行过期,以及在这种情况下获取新刷新令牌的确切流程是什么。

文章:

Podio Refresh token Expiry - 它不会过期(来自用户名中有 Podio 的人的回答,非常近期)

https://help.podio.com/hc/en-us/community/posts/206669587-Get-new-refresh-token - 它过期了,你把它作为响应的一部分而不是 rly?有一些讨论没有结论

我问这个是因为我使用了很多服务和 OAuth 实现,但它是第一次刷新令牌实际上变得无效。那么如果 28 天过去了,那么用户必须重新进行身份验证?或者只是一个令牌无效但“授予”仍然存在?我不得不说这很令人困惑,因为我习惯于使用授权 == 刷新令牌,但我在 OAuth 规范中理解它。 此外,我们只想将刷新令牌存储在数据库中。 我很想测试它,但我不想等待 28 天。

文档没有明确说明刷新令牌的生命周期。

我希望 Podio 的某个人对此给出明确的答案。刷新令牌是否过期,仅在完全不活动(没有 api 调用)或只是固定数量时,以及在什么情况下(不活动或经过时间),获取刷新令牌的确切流程是什么,是否需要用户重新身份验证?

【问题讨论】:

    标签: oauth podio refresh-token


    【解决方案1】:

    这里有两个部分在起作用,访问令牌刷新令牌

    访问令牌在 expires_in 属性指定的时间间隔后过期。

    如果未使用超过 28 天,刷新令牌可能会过期。每次您使用刷新令牌请求新的访问令牌时,计时器都会重置,并且您还有 28 天的时间来刷新令牌过期。 如果您在 28 天内定期获得新的访问令牌,则假设您可以无限期地使用相同的刷新令牌。

    获取初始访问令牌和刷新令牌的 HTTP 请求示例(用星号编辑的值):

    POST /oauth/token HTTP/1.1
    Host: podio.com
    Content-Type: application/x-www-form-urlencoded
    Cache-Control: no-cache
    
    grant_type=password&username=******&password=******&client_id=******&client_secret=******
    

    响应正文:

    {
      "access_token": "******9c2",
      "expires_in": 28800,
      "token_type": "bearer",
      "scope": "global:all",
      "ref": {
        "type": "user",
        "id": ******
      },
      "refresh_token": "******04a"
    }
    

    获取新访问令牌的示例请求(使用相同的刷新令牌):

    注意:请求正文中的任何额外空白字符都可能导致问题。这是我在实验时遇到的一个问题。

    请求:

    POST /oauth/token HTTP/1.1
    Host: api.podio.com
    Content-Type: application/x-www-form-urlencoded
    Cache-Control: no-cache
    
    grant_type=refresh_token&client_id=******&client_secret=******&refresh_token=******04a
    

    响应正文:

    {
      "access_token": "******676",
      "expires_in": 28800,
      "token_type": "bearer",
      "scope": "global:all",
      "ref": {
        "type": "user",
        "id": ******
      },
      "refresh_token": "******04a"
    }
    

    需要注意的是,刷新令牌的值不会改变,可以重复使用来获取新的访问令牌。


    TL;DR - 如果您不使用刷新令牌,它将在 28 天后过期。每当您使用刷新令牌获取新的访问令牌时,刷新令牌的到期计时器都会重置。

    【讨论】:

    • 很好的答案,我建议在您的文档中包含每次使用后的 28 天信息 + 延长使用寿命 :)
    猜你喜欢
    • 1970-01-01
    • 2020-05-05
    • 2017-04-25
    • 2021-10-07
    • 2017-11-20
    • 2016-03-31
    • 2012-12-21
    • 2015-06-27
    • 2014-08-19
    相关资源
    最近更新 更多