【问题标题】:How to handle JWT token expiry in react native and redux app如何在 react native 和 redux 应用程序中处理 JWT 令牌到期
【发布时间】:2019-09-11 10:49:57
【问题描述】:

我对实施 JWT 还很陌生。在实现 JWT 时我有几个问题。我正在使用 axios 发出请求。 当用户登录或注册时。我得到了一个 accessToken,它会在几天后过期。我没有 refreshToken 因为我认为后端是建立在 django rest 框架上的。

现在,如果我在请求中收到状态码 401,我会尝试检查令牌是否已过期,如果是,则刷新 accessToken,但有时即使刷新令牌 api 返回 400,表明此令牌也是过期了,此时我需要用户注销。

我认为这是一个糟糕的用户体验,为什么我们不能使用旧令牌刷新令牌。有没有办法让它不过期?谁能指出一个通过正确实现 axios 拦截器解决以下问题的示例?

【问题讨论】:

    标签: javascript reactjs react-native jwt axios


    【解决方案1】:

    由于您使用的是 Django REST 框架,请考虑将 Djoser 与 JWT 令牌一起使用,然后 djoser 从后端向您发送访问和刷新令牌。后端准备完成后,请按照此 simple article 从 react native 自动刷新和访问令牌。希望对你有帮助。

    【讨论】:

      【解决方案2】:

      您可以创建一个永不过期的令牌,但出于安全原因,这是一个坏主意。如果令牌被盗,那么有人可以随时访问用户的数据。您可以在exp 声明中设置到期日期。在这里阅读更多:https://gist.github.com/soulmachine/b368ce7292ddd7f91c15accccc02b8df

      【讨论】:

      • 所以基本上我需要将设备名称或设备存储在 aud 变量中并检查它是否相同然后不要刷新令牌。我说的对吗?
      猜你喜欢
      • 2018-06-16
      • 2017-02-22
      • 2021-05-19
      • 2021-12-31
      • 2021-09-14
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 2017-02-16
      相关资源
      最近更新 更多