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

时间:2019-07-25 11:04:57

标签: python graphql graphene-django django-graphql-jwt

概述

基于“长时间运行的刷新令牌”的Settings部分中的概念。

  

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

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

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

问题

现在,我们正在努力奋斗的是如何知道刷新令牌将在7天后过期?因此,我们可以创建一个逻辑来检查会话是否还有1天,然后触发refreshToken()突变?

结论

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

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

1 个答案:

答案 0 :(得分:0)

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

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