Node.js JWT 处理

Node.js JWT handling

我在过去几周开始学习 Node.js,并且已经完成了一个课程。遗憾的是,课程并没有涵盖所有内容,这就是我来到这里的原因。

因此,课程涵盖了服务器端JWT的处理,但没有提及客户端js,因为他们使用了Postman。我了解一切,期望我如何将这些令牌存储在客户端上,以及如何将它们与请求一起发送。我读过诸如客户端 js 将其存储在 cookie 或本地存储中的内容。好的,如果我要将它存储在本地存储中,那么我需要在每次请求时都发送它,不是吗?如果是这样,那么我认为它不会太有效。如果客户端键入 URL,如 www.example.com/somepage,并且它需要身份验证怎么办?在这个例子中,他需要手动设置。有没有办法在登录后自动设置 header ?

我找到的关于此操作的所有教程或主题都是通过 postman 完成的。

如果这没有任何意义,请不要起诉我,我只是想把事情弄清楚,因为我有点困惑。

祝你有愉快的一天!

1) 您应该使用 cookie 或 localStorage 来存储 JWT 令牌。

2) 通过 Authorizartion 在 headers 中传递 JWT 令牌,因此:

Authorization: Bearer {JWT_TOKEN}

3) 把它放在你所有的headers get,post,put, delete 请求中

是的,你必须在客户端编写 http 拦截器,以在登录后处理每个请求中的 JWT 令牌,这是实现它的有效方法

请仔细阅读 https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests

您可以通过localStorage.set("keyName", keyValue);将其保存在localStorage中。可以通过 localStorage.get("keyName");

检索它

将其发送到服务器时,您可以将其作为 PUT 请求中的参数发送,也可以将其设置为自定义 header。这取决于您使用的库。

What if the client types an URL like www.example.com/somepage, and it requires authentication?

为此,您可以编写 Express 中间件来处理这个问题。

您将中间件写在一个文件中,在需要的地方导入它,然后为每个需要身份验证的路由简单地调用它。

app.get('/some-protected-route', auth, (req, res) => {

// do something

} )

SA 在这里回答: How to setup an authentication middleware in Express.js

在其他地方也有很多教程、解释等。