当前位置:  开发笔记 > 程序员 > 正文

Podio Oauth - 刷新令牌寿命

如何解决《PodioOauth-刷新令牌寿命》经验,为你挑选了1个好方法。

我目前正在研究Podio集成,我偶然发现了一些文章,这些文章没有给出明确的答案,刷新资本是否会自动失效,在这种情况下获取新刷新令牌的确切流程是什么.

文章:

Podio刷新令牌到期 - 它不会过期(从用户名中有Podio的人回答,最近)

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

我问这个是因为我使用了很多服务和OAuth实现,但它是第一次刷新令牌实际上变得无效.那么如果28天过去了那么用户必须重新认证?或者只是令牌无效但"授权"仍然存在?我不得不说它很混乱,因为我习惯于接近grant ==刷新令牌,但我理解它与OAuth规范有关.另外我们只想在db中存储刷新令牌.我很想测试它,但我不想等待28天.

文档没有明确说明刷新令牌的生命周期是什么.

我喜欢Podio的某个人给出明确的答案.刷新令牌是否过期,只有在完全不活动(没有api调用)或只是固定数量时,以及在什么情况下(不活动或时间过去),获取刷新令牌的确切流程是什么,它是否需要用户重新认证?



1> Brandon Twee..:

这里有两个部分,访问令牌刷新令牌.

访问令牌在通过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天后过期.每当您使用刷新令牌获取新的访问令牌时,刷新令牌的到期计时器都会重置.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有