javascript - 加密,然后将访问令牌存储在 localStorage
问题描述
我的 API 在用户登录后返回访问令牌。
所有未来的请求都必须在 Authentication 标头中包含此令牌。
我希望用户即使关闭并重新打开浏览器也能保持登录状态。
我可以安全地将这个访问令牌的加密版本存储在 localStorage 中,检索它,在我的 React 客户端代码中解密它并将其发送到 API 吗?
解决方案
当然,如果您喜欢https://www.npmjs.com/search?q=keywords:encrypt,您可以使用类似https://www.npmjs.com/package/aes-js或其他库的内容。
我认为真正的问题是为什么?用户始终可以在开发工具的网络请求中看到未加密的值。如果访问令牌与用户拥有的用户名和密码相关联,为什么他们看不到它?这实际上只是编写用户名和密码的另一种方式。如果它与属于您的应用程序的用户名相关联(例如,您的服务器使用该用户名登录到另一台服务器的所有请求,而不仅仅是这个用户),那么您不应该将它传递给浏览器,因为它是容易偷。
推荐阅读
- javascript - 使用 Javascript 切换 CSS - 禁用汉堡菜单后面的滚动
- javascript - 如何根据反应js中的选定值显示数据?
- spring-boot - 获取 MockMvc 和 @MockBean 字段的空指针
- python - graphql api没有将代码视为石墨烯中的字符串
- github - 使用 yarn 或 npm 安装包时出错,`Request failed \"401 Unauthorized`
- rust - 从 Rust 中的 bytes::Bytes 获取 C FILE 指针
- powershell - 【PowerShell】 有没有完美的方法不将错误写入$Error?
- java - 云网关无法通过网关访问服务但直接访问没有问题
- python - 以特定方式从 xlsx 文件打印数据帧
- r - 为采样天数创建一个列,例如 0、10、30 天,从每个研究区域的 0 天开始?