[英]Is saving user's id and login token in local storage a good idea?
我正在开发Django + React
项目,我被这种与登录用户的登录和管理视图有关的安全方法所困扰。
我正在为我的RESTful API
使用django-rest-framework
或DRF 。 而且我正在使用django-rest-knox
来验证用户登录,因为我正在实现基于令牌的身份验证(而不是使用CSRF
的基于会话的身份验证) 。
问题:将用户的 id 和令牌保存在本地存储中是个好主意吗?
目前,我有一个/auth/login/
API 端点,它处理登录用户的后端逻辑,并在成功登录后返回登录详细信息的 JSON 响应(包括用户id
和token
)。
在我的前端,我使用redux
和redux-persist
,这样即使网站刷新,用户的登录详细信息也会保留。 redux-persist
这样做的方式是将响应保存在local storage
中。 这意味着可以通过dev tools
随时访问和更改用户id
和token
。
如果用户随后向需要Token authentication header
的 API 发出POST
请求,则前端将查看该本地存储以获取要提供给请求 Z099FB995346F31C753F6E40DBE3ZF 的token
值。
如果用户随后将向 API 发出POST
请求,其中请求数据中需要用户id
,则前端还将在本地存储中查找该 ID。
Localstorage是不安全的,尤其是对于存储令牌和 ID。 例如,任何用户都可以 go 到浏览器的开发者工具,查看并编辑其内容。
您可以检查Django 的会话,这样您就可以在服务器端安全地存储数据并将其内容与特定用户关联。 Mozilla 有一个很棒的教程,它以比官方文档更清晰的方式解释了会话。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.