基于“长时间运行的刷新令牌”的Settings部分中的概念。
这意味着您需要每5分钟刷新一次[访问令牌],并且需要在发出刷新令牌后的7天之内更换它。
这将使用户能够维持刷新令牌会话,只要我们可以在 7天之内(例如'JWT_REFRESH_EXPIRATION_DELTA': timedelta(days=7)
)刷新它即可。
请注意,您不能使用过期的刷新令牌呼叫refreshToken(refreshToken: $refreshToken)
,因为这可能会导致"message": "Refresh token is expired"
。
现在,我们正在努力奋斗的是如何知道刷新令牌将在7天后过期?因此,我们可以创建一个逻辑来检查会话是否还有1天,然后触发refreshToken()
突变?
在不知道刷新令牌的到期日期的情况下,开发人员将不得不整合存储在客户端中发出刷新令牌之后的日期,以确定刷新令牌的年龄。
如果我遗漏了一些东西,也许已经有一种简单的方法来处理刷新令牌到期日期的检查?
答案 0 :(得分:0)
JWT令牌实际上是Base64编码的字符串,它存储许多自己的属性,包括您要查找的属性。 JWT令牌的优点在于它还包含一个基于令牌有用部分的哈希。这意味着,如果有人通过更改到期/签发日期,用户名或自定义值来更改JWT令牌,则哈希将不再有效并且令牌将被拒绝。
在您的情况下,这意味着您可以接受令牌,将字符串解码为JSON对象,检查其值,然后根据其内容进行响应。希望这会有所帮助!