首页 > 解决方案 > 加密,然后将访问令牌存储在 localStorage

问题描述

我的 API 在用户登录后返回访问令牌。

所有未来的请求都必须在 Authentication 标头中包含此令牌。

我希望用户即使关闭并重新打开浏览器也能保持登录状态。

我可以安全地将这个访问令牌的加密版本存储在 localStorage 中,检索它,在我的 React 客户端代码中解密它并将其发送到 API 吗?

标签: javascriptreactjsapijwt

解决方案


当然,如果您喜欢https://www.npmjs.com/search?q=keywords:encrypt,您可以使用类似https://www.npmjs.com/package/aes-js或其他库的内容。

我认为真正的问题是为什么?用户始终可以在开发工具的网络请求中看到未加密的值。如果访问令牌与用户拥有的用户名和密码相关联,为什么他们看不到它?这实际上只是编写用户名和密码的另一种方式。如果它与属于您的应用程序的用户名相关联(例如,您的服务器使用该用户名登录到另一台服务器的所有请求,而不仅仅是这个用户),那么您不应该将它传递给浏览器,因为它是容易偷。


推荐阅读