什么时候刷新令牌?

Posted

技术标签:

【中文标题】什么时候刷新令牌?【英文标题】:When to refresh token? 【发布时间】:2015-06-09 08:33:31 【问题描述】:

我的应用程序在后台持续运行。该应用程序使用 UCWA REST api。身份验证后,我得到 OAuth 令牌和一些过期时间。 Authentication docs 说“对于经过身份验证的用户,令牌的生命周期为八 (8) 小时。客户端应用程序应监控到期时间并根据需要刷新令牌”。 那么,什么时候需要刷新令牌呢?开始刷新令牌时我应该保留什么到期时间? 1、10 或 60 分钟?什么是 OAuth 最佳做法?

【问题讨论】:

【参考方案1】:

票务服务的响应将为用户提供 OAuth 令牌、令牌类型和过期值。此值以秒为单位,这意味着您可以除以分钟 (60) 或小时 (3600) 来获得一个值,您可以预期请求开始失败并出现 401 Unauthorized。当应用程序使用匿名会议加入时,监控最有用,因为令牌到期时间要短得多,大约 1 小时,而且它是唯一直接提供更新令牌的身份验证机制。

这导致了两种可能的方法:

如果使用匿名会议加入 检查身份验证响应中的过期值并启动一个小于预期值的计时器(可能少 1-3 分钟) 计时器到期时刷新 OAuth 令牌 如果不使用匿名会议加入 发送请求直到 401 发生 检查 WWW-Authenticate 的响应标头并发送另一个身份验证请求以获取新令牌 使用新令牌重新发出请求

在非匿名会议加入场景中,最好等待 401 出现,然后再采取措施刷新令牌。

【讨论】:

以上是关于什么时候刷新令牌?的主要内容,如果未能解决你的问题,请参考以下文章

JWT 令牌和刷新令牌的合理到期日期是啥?

JWT, 为啥需要刷新令牌?

为啥使用 JWT 刷新令牌

使用访问令牌和刷新令牌来刷新它们

什么是刷新令牌,我们可以控制刷新 AADB2C 中的 ID 和访问令牌吗?

为啥刷新令牌过期不返回?