我需要在客户端检查JWT到期时间吗?

时间:2019-02-09 18:53:22

标签: reactjs django-rest-framework react-redux jwt django-rest-framework-jwt

我正在使用Django REST框架,react和redux开发类似分类广告的网站。我对使用JWT进行身份验证有疑问。 我想使用djangorestframework_simplejwt进行身份验证,并且已经检查了一些教程。我看到很多教程都在像下面检查客户端上的访问令牌

export function isAccessTokenExpired(state) {
 if (state.access && state.access.exp) {
   return 1000 * state.access.exp - (new Date()).getTime() < 5000
 }
 return true
}

并刷新令牌。 但是我不知道为什么。因为每当我们收到带有过期访问令牌的HTTP 401未经授权错误时,只需请求带有刷新令牌的新访问令牌即可。

我认为的工作流程是 1.向服务器发送带有访问令牌的请求以获取只有经过身份验证的用户才能看到的页面 2.如果访问令牌已过期,则前端将收到HTTP 401未经授权的错误 3.向服务器发送带有刷新令牌的请求以获取新的访问令牌,然后前端会将其存储到localStorage 4.再次发送请求

这是不好的方法吗?

我对我的英语不好道歉...

1 个答案:

答案 0 :(得分:2)

您不应该在客户端检查JWT。 JWT基本上是服务器给您的令牌,它被“假定”为有效。当您将令牌发回时,服务器会以Http状态代码401-未经授权的形式告诉您令牌是否无效有效