在节点中使用JWT进行授权

问题描述

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

但是在一个真实的应用程序中,我使用浏览器登录,确实确实使用令牌设置了标头,但是一旦我输入URL进入受限/已认证的必需路径,就可以说/ 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