在 Node 中使用 JWT 进行授权

Using JWT for Authorization in Node

所以我一直在关注使用 POSTMAN 教授身份验证的 Udemy 课程,但我一直想知道它在使用浏览器的实际应用程序中是如何工作的。我们被教导用 res.header('x-auth-token', token) 存储 JWT 令牌。然后当我们尝试访问受保护的路由时,我们在 POSTMAN header 中手动添加令牌并在服务器上使用 req.header('x-auth-token') 获取令牌并验证令牌。

但在一个真正的应用程序中,我使用浏览器登录,它确实使用令牌设置了 header,但是一旦我输入 URL 进入 restricted/authenticated 必填路径,比方说 /user/profile,它要求我重新登录。当我输入新的 URL 时,令牌是否没有保留?

如何获取令牌以便令牌在浏览器中随身携带直至过期?

类似于您使用 POSTMAN 在每个请求中手动添加令牌的方式,您的客户端应用程序需要处理(显然与服务器端协调)您如何将令牌发送到服务器。它不会自动执行每个请求。您需要存储服务器返回的 JWT 令牌。

如果您将 JWT 令牌存储在 cookie 中,那么浏览器将在您每次发出请求时发送令牌。但也建议不要使用 cookie。检查有关如何在客户端存储 JWT 令牌以及如何在每个未来请求中重复添加令牌直到注销的各种方法。还有一个刷新令牌的概念,在令牌过期的情况下获取新令牌。

查看以下博客以获取更多信息。您也可以在 Internet 上找到其他资源。

https://hasura.io/blog/best-practices-of-using-jwt-with-graphql/

https://blog.nextzy.me/implementing-json-web-token-jwt-to-secure-your-app-c8e1bd6f6a29