【发布时间】: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?
【问题讨论】: