JWT - 第二次刷新后的 TOKEN_EXPIRED

Posted

技术标签:

【中文标题】JWT - 第二次刷新后的 TOKEN_EXPIRED【英文标题】:JWT - TOKEN_EXPIRED after second refresh 【发布时间】:2019-06-17 01:45:33 【问题描述】:

我正在使用 laravel 和 tymon/jwt-auth 开发一个 API 服务器。在测试环境中 TTL - 1 分钟,TTL_REFRESH - 2 分钟。不明白以下算法是如何工作的:

    用户登录并收到令牌 令牌的 TTL 已过期,但 TTL_REFRESH 未过期。用户向服务器发送请求以刷新令牌 用户使用了新的token,但没有及时更新。令牌又过期了。 当用户第二次尝试刷新令牌时(第一次是在第 2 步),服务器发送TOKEN_EXPIRED

如果在第 1 步和第 2 步之后尝试使用未过期的 TTL 刷新令牌,则会刷新令牌。但是如果我们在过期后刷新一次,第二次(带有过期令牌)服务器将发送到客户端TOKEN_EXPIRED

我的问题是为什么在 TTL 过期的第二次令牌更新后,服务器不刷新令牌而是发送TOKEN_EXPIRED

【问题讨论】:

【参考方案1】:

我认为刷新令牌在第一次使用后已经失效

您必须使用新的刷新令牌来刷新您的 jwt 令牌并获取新的

【讨论】:

我只有一个令牌,没有 jwt-auth 提供的刷新令牌。当我刷新它时,我只是向服务器发送一个带有authorization: Bearer *token* 标头的请求。 你必须有刷新令牌才能刷新 jwt 令牌,我建议你阅读这个基于 slim php 框架的文档:oauth2.thephpleague.com

以上是关于JWT - 第二次刷新后的 TOKEN_EXPIRED的主要内容,如果未能解决你的问题,请参考以下文章

DJANGO-GRAPHQL-JWT:我们如何知道刷新令牌发布后的年龄?

Echarts图 刷新后无变化

百度地图第二次地图视图不刷新

Vue 资源拦截器刷新 JWT 令牌

.net 刷新了第二次页面后就获取不到cookies了,这是啥回事?

jQuery移动过渡幻灯片页面内容第二次未刷新到原始