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

简介: OAuth 2.0 协议里,刷新令牌用于在当前访问令牌到期时获取新的访问令牌。 有关更多信息,请参阅 OAuth 2.0 RFC。以 LinkedIn 提供的 API 为例。LinkedIn 提供在固定时间段内有效的程序化刷新令牌。 默认情况下,访问令牌的有效期为 60 天,程序化刷新令牌的有效期为一年。 当刷新令牌过期时,成员必须重新授权您的应用程序。

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


以 LinkedIn 提供的 API 为例。


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


image.png


当您使用刷新令牌生成新的访问令牌时,刷新令牌的生命周期或生存时间 (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 — 刷新令牌到期前剩余的秒数。 刷新令牌通常比访问令牌具有更长的生命周期。



相关文章
|
3月前
|
算法 安全 Unix
[RFC6238] TOTP: 基于时间的一次性密码生成算法
[RFC6238] TOTP: 基于时间的一次性密码生成算法
50 0
|
6月前
|
API 对象存储
可能是由于API请求的策略已经过期
可能是由于API请求的策略已经过期
55 3
|
6月前
|
缓存 小程序 前端开发
【Uniapp】小程序携带Token请求接口+无感知登录方案2.0
【Uniapp】小程序携带Token请求接口+无感知登录方案2.0
197 0
|
1月前
|
数据采集 存储 安全
登录态数据抓取:Python爬虫携带Cookie与Session的应用技巧
登录态数据抓取:Python爬虫携带Cookie与Session的应用技巧
|
4月前
|
存储 监控 安全
每次通过上下文获取到的密钥都是36小时有效期
每次通过上下文获取到的密钥都是36小时有效期
33 3
|
8月前
|
存储
Cookie的工作机制
Cookie的工作机制
24 0
|
11月前
|
存储 前端开发 API
还在直接用localStorage么?全网最细:本地存储二次封装(含加密、解密、过期处理)
很多人在用 localStorage 或 sessionStorage 的时候喜欢直接用,明文存储,直接将信息暴露在;浏览器中,虽然一般场景下都能应付得了且简单粗暴,但特殊需求情况下,比如设置定时功能,就不能实现。就需要对其进行二次封装,为了在使用上增加些安全感,那加密也必然是少不了的了。为方便项目使用,特对常规操作进行封装。
256 1
还在直接用localStorage么?全网最细:本地存储二次封装(含加密、解密、过期处理)
|
12月前
|
存储 JSON NoSQL
实战!退出登录时如何借助外力使JWT令牌失效?
实战!退出登录时如何借助外力使JWT令牌失效?
如何实现用户注销并清除SSO令牌?
如何实现用户注销并清除SSO令牌?
Jasny SSO如何处理SSO令牌过期和无效的情况?
Jasny SSO如何处理SSO令牌过期和无效的情况?
194 0