首页 > 其他 > 详细

关于OAuth 协议中刷新令牌存活时间的讨论

时间:2021-08-05 10:38:17      阅读:24      评论:0      收藏:0      [点我收藏+]

OAuth 2.0 协议里,刷新令牌用于在当前访问令牌到期时获取新的访问令牌。 有关更多信息,请参阅 OAuth 2.0 RFC。

以 LinkedIn 提供的 API 为例。

LinkedIn 提供在固定时间段内有效的程序化刷新令牌。 默认情况下,访问令牌的有效期为 60 天,程序化刷新令牌的有效期为一年。 当刷新令牌过期时,成员必须重新授权您的应用程序。

技术分享图片

当您使用刷新令牌生成新的访问令牌时,刷新令牌的生命周期或生存时间 (TTL) 与初始 OAuth 流中指定的相同(365 天),并且新的访问令牌具有新的 TTL 60 天。

例如,在:

  • 第 1 天 - 您的刷新令牌的 TTL 为 365 天,您的访问令牌的 TTL 为 60 天。

  • 第 59 天 - 如果您使用刷新令牌生成新的访问令牌,则访问令牌的 TTL 为 60 天,刷新令牌的 TTL 为 306 天 (365-59=306)。

  • 第 360 天 - 如果您生成新的访问令牌,您的访问令牌和刷新令牌都将在 5 天后过期 (365-360=5),您必须使用授权流程让成员重新授权您的应用程序。

and to clarify: if your access token expired, and it was refreshed using the refresh token --> that doesn’t make the refresh token duration reset. The refresh token’s timeout will continue to tick from the moment you first logged in.

刷新令牌可用于创建新的访问令牌并允许长时间无缝操作。

但是,由于技术或政策原因,领英保留随时撤销刷新令牌或访问令牌的权利。在这种情况下,利用刷新令牌的产品的期望是回退到标准 OAuth 流程,并将登录屏幕呈现给最终用户。

获取刷新令牌

使用授权代码流获取刷新令牌和访问令牌。 如果您的应用程序获得了编程刷新令牌的授权,则在您为访问令牌交换授权代码时将返回以下字段:

  • refresh_token — 应用程序的刷新令牌。 此令牌必须保持安全。

  • refresh_token_expires_in — 刷新令牌到期前剩余的秒数。 刷新令牌通常比访问令牌具有更长的生命周期。

?

关于OAuth 协议中刷新令牌存活时间的讨论

原文:https://blog.51cto.com/jerrywangsap/3274210

(0)
(0)
   
举报
评论 一句话评论(0
分享档案
最新文章
教程昨日排行
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!