如何生成刷新令牌的过期时间?

Posted

技术标签:

【中文标题】如何生成刷新令牌的过期时间?【英文标题】:How to generate expiration time for refresh token? 【发布时间】:2021-12-18 21:28:58 【问题描述】:

我需要生成refresh token的过期时间,refresh token应该在200天后过期,如何生成exp时间呢?有图书馆吗?应该是什么格式? unix,也许是 YYYY/MM/DD 等?请有任何选择,谢谢!

【问题讨论】:

【参考方案1】:

您可以使用 json 网络令牌并使用 jsonwebtoken 包。

https://www.npmjs.com/package/jsonwebtoken

具体来说,如果您使用 options.expiresIn 值,它将为您处理日期计算和逻辑。使用verify() 方法时,如果令牌已过期,则会失败。

【讨论】:

刷新令牌是否使用jsonwebtoken包生成为访问令牌?因为现在我使用rand-token包生成刷新令牌,所以刷新令牌只是一个随机字符串,例如:GFZCdUw4ds0kRxeYaFU6jSETCRhqC3kQXBlmrLC3YB2uySg8irzH3LkB8BXSXQioT,我需要指定这个字符串的过期时间。 我个人喜欢使用 json Web 令牌来访问和刷新令牌的概念。因此,您可以在令牌本身内,在它过期时保留,使客户端非常容易检查他们是否需要使用刷新令牌。唯一的区别是它的尺寸可能略大。如果你想使用随机令牌包,你可以使用类似 Moment.js 的东西来为你生成过期时间。 moment().add(200, 'days').toISOString() 将生成 ISO 8601 格式的日期 2013-02-13T22:44:30.652Z 非常感谢!

以上是关于如何生成刷新令牌的过期时间?的主要内容,如果未能解决你的问题,请参考以下文章

刷新令牌过期时间谷歌日历

刷新 JWT 过期而不刷新或生成新 Token

如何从刷新令牌中获取访问令牌?刷新令牌会过期吗?

过期后使用刷新令牌获取访问令牌(JWT)

使用过期令牌发出同时 API 请求时如何避免多个令牌刷新请求

ASP .NET Web Api OAuth 刷新令牌过期时间