javascript - 如何将 cookie 中保存的数据链接到用户?
问题描述
当使用特定用户(即用户 1)登录时,我可以使用以下代码段以 cookie 的形式保存我的数据:
import Cookies from 'universal-cookie';
const cookie = new Cookies()
cookie.set('cookie','user1value', { path:'/'})
但是当我使用用户 2 登录时,我不希望我的用户 2 能够访问我从用户 1 登录时保存的 cookie,即我不希望我的用户 2 能够看到user1value
给出的 cookie上面的代码。给定的代码允许所有用户在同一站点上访问 cookie。有没有办法将某个用户映射到特定的 cookie 值?如果是这样,有人可以给我一个大致的想法,我该如何实现这一目标?
解决方案
通常,您不希望在用户注销后将用户相关信息存储在 cookie 中。您可以在用户再次登录后获取用户相关信息,并将其设置为cookie。我能想到的一些选择:
正如评论中所说,通过使用相同的 cookie 名称,您可以覆盖用户浏览器中以前的 cookie。这样,旧的 cookie 值就会丢失。
在注销时,您可以将 cookie 值设置为空字符串(或任何其他未使用的值)并设置“过期”值,如本文所述。
如果您不希望您的用户信息在 cookie 值中可读,您可以使用会话 id 作为 cookie 值。然后,在服务器端的数据存储中,您可以将此会话 ID 与登录的用户信息相关联。用户注销后,您可以删除数据库中的会话以及 cookie。
推荐阅读
- python - 我们如何在后端验证来自 azure AD 的访问令牌?
- python - 在二元组列表中查找名称?
- python - 如何使用beautifulsoup从href中提取链接
- typescript - ReactTS 中的全局辅助函数
- python - 无法在 Pyspark 中导入 Python 依赖项
- copy-paste - gedit - 启用鼠标中键复制/粘贴
- r - 在“比较悬停时的数据”时禁用悬停信息
- linux - 如何在 docker compose 2.4 版中指定 CPU 限制
- spring-security - 如何在没有用户交互的情况下正确刷新 SAML 令牌,即重新登录?
- mysql - 如果 1 个值(int)在另一个值(字符串)中,如果它是连接其他两个值(int)并返回它,我如何检查选择内部?