django - 将用户的 ID 和登录令牌保存在本地存储中是个好主意吗?
问题描述
我正在开发Django + React
项目,我被这种与登录用户的登录和管理视图有关的安全方法所困扰。
我正在为我django-rest-framework
的. 而且我正在使用身份验证用户登录,因为我正在实现基于令牌的身份验证(而不是基于会话的使用)。RESTful API
django-rest-knox
CSRF
问题:将用户的 id 和令牌保存在本地存储中是个好主意吗?
目前,我有一个/auth/login/
API 端点来处理登录用户的后端逻辑,并在成功登录时返回登录详细信息的 JSON 响应(包括用户id
和token
)。
在我的前端,我使用redux
,redux-persist
因此即使网站刷新,用户的登录详细信息也会保留。这样redux-persist
做的方法是将响应保存在local storage
. 这意味着用户可以随时访问和id
更改。token
dev tools
如果用户随后POST
向需要 a 的 API 发出请求Token authentication header
,则前端将查看该本地存储以获取token
要提供给请求标头的值。
如果用户随后向请求数据中需要POST
用户的 APIid
发出请求,则前端还将在本地存储中查找 id。
解决方案
Localstorage是不安全的,尤其是对于存储令牌和 ID。例如,任何用户都可以访问浏览器的开发者工具,查看并编辑其内容。
您可以检查Django 的会话,因此您可以在服务器端安全地存储数据并将其内容与特定用户相关联。Mozilla有一个很棒的教程,它以比官方文档更清晰的方式解释了会话。
推荐阅读
- c# - 更改 Angular 和 ASP.NET Core 项目中的默认身份路由
- for-loop - 如何在迭代 Vector 的 for 循环中传递 Vector
- python - Django 和 Postgres:未强制执行唯一约束?“空格”编码?
- r - 使用非 ASCII 字符部署 ShinyApp
- node.js - 在nodejs进程上执行自定义命令
- spring - 如何在使用spring mvc验证请求参数值之前修剪它们?
- php - 想向填写表格的人发送电子邮件,并向网站管理员发送一封电子邮件以回复客户
- linux - 从 Windows 浏览器访问在远程 linux 机器上运行的 docker 容器
- ajax - 使用来自 ajax 的 x 和 y 值输入 highchart
- asp.net-mvc - 在 asp.net mvc 中保存图像时出现 gdi+ 错误