【问题标题】:JWT refresh token in React+NodeJSReact+NodeJS 中的 JWT 刷新令牌
【发布时间】:2019-03-03 11:46:44
【问题描述】:

在一个小项目上工作并使用 jwt 令牌进行了一些身份验证,整个过程如下所示:

  1. 在身份验证/注册时生成 jwt 令牌以及 refreshToken
  2. 使用令牌发出请求
  3. 如果令牌过期,我查询请求用户和他的refreshToken,比较他当前请求的refreshToken和数据库令牌
  4. 如果令牌匹配,我会生成一个新令牌和一个新刷新令牌。

整个问题是第 5 步,假设我向“/me/friends”发出请求,并且在我的令牌过期的过程中,我从我的 refreshToken 中创建了一个新的,但我不明白我应该怎么做在“我/朋友” api 调用上将令牌返回到前端,因为它返回一个特定字段的数组,而令牌与它无关。我只是想不通这应该如何工作,有人可以帮助我吗?

【问题讨论】:

  • 你应该尝试使用中间件,在你前面的任何调用中,你都会有一个中间件调用端点来刷新你的令牌

标签: node.js reactjs authentication jwt


【解决方案1】:

您如何在客户端存储令牌?最简单的方法是将其存储在 cookie 中。在这种情况下,第 5 步就变成了使用请求设置更新的 cookie。

另一种选择是从您的端点返回 401-Unauthorized,然后在客户端,您可以通过尝试手动刷新令牌然后重试请求来处理 401 状态代码。

但我认为选项 1 更可取,如果您不使用某种身份验证中间件,如果身份验证过期,则根本不会到达端点。

【讨论】:

  • 我正在使用 localStorage 来存储令牌。而且我正在使用护照包作为中间件,在所有请求之前都有一个策略。我已经看到教程制作端点 /token ,但它是如何工作的?..
猜你喜欢
  • 2022-01-20
  • 2016-03-05
  • 2016-06-25
  • 2020-01-25
  • 1970-01-01
  • 2021-04-06
  • 2017-10-11
  • 2016-10-14
  • 1970-01-01
相关资源
最近更新 更多