目前,我正在开发一个分类广告网站,在前端使用 ReactJS。不幸的是,现在我在 cookie 行为方面遇到了一些麻烦,所以我试图找出问题所在,但很多天都没有运气。问题是,我使用 cookie 将用户电子邮件和用户 ID 保存在 cookie 中,以检查它是否登录或注销。由于某些原因,有时必须刷新页面才能从 cookie 中获取用户电子邮件和 ID。第二个问题是,在用户注销、浏览页面并刷新网站后,用户再次登录,我不知道这是怎么发生的。
请查看视频以了解该错误的实际情况 https://youtu.be/Xrhw2Oa9_1k
链接到存储库https://github.com/tourniquet/classified-frontend-react
此外,如果有一些关于如何管理记录的用户数据的好教程,请随时与我分享。预先感谢您!
最佳答案
如果我正确理解你的问题
- 您正在尝试注销,但应用刷新后您已登录
- 有时您还需要刷新才能获取电子邮件和 ID
这是一个非常常见的问题,我必须说,现代浏览器不会真正删除网站数据,直到强制刷新/重新打开等...
为了解决这个问题,我建议您保留相同的逻辑来删除 cookie,但交换数据结构和条件逻辑来检查登录事件。
因此,请更改您的存储空间
id = ...
email = ......
至
userData: {
id: ....,
email: ......
}
在读取 cookie 时您必须使用 JSON.parse 并使用 JSON.stringify 来保存数据
但是这么多努力是为了什么?你会得到什么?
- 组织的用户信息
处理 cookie 未删除的问题 - 通过将 cookie 设置为
用户数据:{}
然后删除它 登录时检查 id 和 email 是否存在,如果 Js 则使用 hasProperty 方法检查 userData
受控的用户信息,可以存储和处理(使用您在react中编写的js util)更多属性(可能是 session 存储或服务器验证等)
如果您关心此类安全问题,请加密所有用户数据
我希望我为您提供了一种系统地处理和解决该问题的方法:-)
还要记得检查 cookie 是否不存在,然后将其设置为空白。
关于reactjs - ReactJS 应用程序中奇怪的 cookie 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58256250/