1

概述

基于长期运行刷新令牌的设置部分中的概念。

这意味着您需要每 5 分钟刷新一次 [访问令牌],并且您需要在刷新令牌发出后 7 天内更换您的刷新令牌。

这将使用户能够保持刷新令牌会话,只要我们可以在 7 天内刷新它例如 'JWT_REFRESH_EXPIRATION_DELTA': timedelta(days=7))。

请注意,您不能使用过期的刷新令牌进行调用refreshToken(refreshToken: $refreshToken),因为这可能会导致"message": "Refresh token is expired".

问题

现在这里的难题是我们如何知道刷新令牌将在 7 天后过期?所以我们可以创建一个逻辑来检查它是否还有 1 天的会话时间然后触发refreshToken()突变?

结论

在不知道刷新令牌的到期日期的情况下,开发人员将不得不集成存储在客户端发布刷新令牌之后的日期,以确定刷新令牌的年龄。

好吧,如果我遗漏了一些东西,也许已经有一种简单的方法来处理刷新令牌到期日期的检查?

4

1 回答 1

1

JWT 令牌实际上是一个 Base64 编码的字符串,其中存储了许多自己的属性,包括您要查找的属性。JWT 令牌的美妙之处在于它还包含一个哈希,它基于令牌的有用部分。这意味着,如果有人通过更改过期/颁发日期、用户名或自定义值来更改 JWT 令牌,则哈希将不再有效并且令牌将被拒绝。

在您的情况下,这意味着您可以接受令牌,将字符串解码为 JSON 对象,检查其值,并根据其内容做出响应。希望这可以帮助!

于 2019-07-26T17:16:01.020 回答