NodeJS 只要我在后端正确地验证了所有内容,就可以将这些数据存储在本地存储中吗?

lf5gs5x2  于 2023-01-25  发布在  Node.js
关注(0)|答案(2)|浏览(119)

我正在做一个学习使用MERN栈进行全栈开发的项目。我正在使用jwt令牌进行身份验证。下面是我发送给客户端并在登录时将其存储在本地存储中的内容
用户名:migo
isAdmin:真
内标识:jwtToken
电子邮件:www.example.comblabla@gmail.com
我想我应该只把令牌存储在本地存储器上,然后解码它来获得isAdmin、用户名、电子邮件等。正确的处理方法是什么?我做错了什么吗?

g6ll5ycj

g6ll5ycj1#

本地存储器应该只包含不敏感的数据,并且不用于访问后端。因此,我认为在本地存储器中存储isAdminusername这样的信息是安全的。(注意,isAdmin这样的标志应该只用于非安全目的。例如,显示不同的用户图标、主题或菜单选项)
如果您可以选择将JWT访问令牌存储在仅HTTP的安全cookie中,那么您应该使用此解决方案。现在不建议将令牌存储在本地存储中,因为它们容易受到XSS攻击。

ajsxfq5m

ajsxfq5m2#

是的,您可以只将JWTweb令牌保存在浏览器的本地存储中,然后在后端/服务器端对其进行解码。但是,在将JWT作为响应发送到前端时,请将其属性设置为httpOnly:true以获得更好的安全性,这样第三方就无法访问JWT令牌
您可以参考以下链接,例如
https://iditect.com/article/express-uses-jwt-and-httponly-cookie-for-security-verification.html

相关问题