我正在做一个学习使用MERN栈进行全栈开发的项目。我正在使用jwt令牌进行身份验证。下面是我发送给客户端并在登录时将其存储在本地存储中的内容用户名:migoisAdmin:真内标识:jwtToken电子邮件:www.example.comblabla@gmail.com我想我应该只把令牌存储在本地存储器上,然后解码它来获得isAdmin、用户名、电子邮件等。正确的处理方法是什么?我做错了什么吗?
g6ll5ycj1#
本地存储器应该只包含不敏感的数据,并且不用于访问后端。因此,我认为在本地存储器中存储isAdmin或username这样的信息是安全的。(注意,isAdmin这样的标志应该只用于非安全目的。例如,显示不同的用户图标、主题或菜单选项)如果您可以选择将JWT访问令牌存储在仅HTTP的安全cookie中,那么您应该使用此解决方案。现在不建议将令牌存储在本地存储中,因为它们容易受到XSS攻击。
isAdmin
username
ajsxfq5m2#
是的,您可以只将JWTweb令牌保存在浏览器的本地存储中,然后在后端/服务器端对其进行解码。但是,在将JWT作为响应发送到前端时,请将其属性设置为httpOnly:true以获得更好的安全性,这样第三方就无法访问JWT令牌您可以参考以下链接,例如https://iditect.com/article/express-uses-jwt-and-httponly-cookie-for-security-verification.html
2条答案
按热度按时间g6ll5ycj1#
本地存储器应该只包含不敏感的数据,并且不用于访问后端。因此,我认为在本地存储器中存储
isAdmin
或username
这样的信息是安全的。(注意,isAdmin
这样的标志应该只用于非安全目的。例如,显示不同的用户图标、主题或菜单选项)如果您可以选择将JWT访问令牌存储在仅HTTP的安全cookie中,那么您应该使用此解决方案。现在不建议将令牌存储在本地存储中,因为它们容易受到XSS攻击。
ajsxfq5m2#
是的,您可以只将JWTweb令牌保存在浏览器的本地存储中,然后在后端/服务器端对其进行解码。但是,在将JWT作为响应发送到前端时,请将其属性设置为httpOnly:true以获得更好的安全性,这样第三方就无法访问JWT令牌
您可以参考以下链接,例如
https://iditect.com/article/express-uses-jwt-and-httponly-cookie-for-security-verification.html