如何在 NodeJS 中使用 JWT 令牌验证路由
How to verify routes with JWT token in NodeJS
亲爱的,
我正在尝试使用 JWT 令牌授权我的用户。在数据库中确认用户和密码后,将创建一个 JWT 令牌。我还制作了一个中间件来验证该令牌,并在我创建的某些路线上使用了该中间件。使用 Postman 在 header 处插入令牌测试此路由,一切正常,但是当我尝试在浏览器中使用它时,令牌在我登录后存储在登录 header 中,但是当我重定向(使用 res.redirect('/dashboard'))时,我无法访问仪表板页面,因为令牌仅在登录时 header,而不是在仪表板 header.
您知道如何使该令牌在我的所有环境中都可用吗?或者进行路由授权的最佳方式是什么?
非常感谢您的帮助!
您可以使用会话或 cookie 并将该令牌存储在那里并设置它们的到期时间限制。
使用 sessionStorage 让您的 JWT 在用户的浏览器上持久存在:
sessionStorage.setItem('JWT', 'my.jwt.data');
然后,使用getItem
取回:
const jwt = sessionStorage.getItem('JWT');
亲爱的,
我正在尝试使用 JWT 令牌授权我的用户。在数据库中确认用户和密码后,将创建一个 JWT 令牌。我还制作了一个中间件来验证该令牌,并在我创建的某些路线上使用了该中间件。使用 Postman 在 header 处插入令牌测试此路由,一切正常,但是当我尝试在浏览器中使用它时,令牌在我登录后存储在登录 header 中,但是当我重定向(使用 res.redirect('/dashboard'))时,我无法访问仪表板页面,因为令牌仅在登录时 header,而不是在仪表板 header.
您知道如何使该令牌在我的所有环境中都可用吗?或者进行路由授权的最佳方式是什么?
非常感谢您的帮助!
您可以使用会话或 cookie 并将该令牌存储在那里并设置它们的到期时间限制。
使用 sessionStorage 让您的 JWT 在用户的浏览器上持久存在:
sessionStorage.setItem('JWT', 'my.jwt.data');
然后,使用getItem
取回:
const jwt = sessionStorage.getItem('JWT');