reactjs - ReactJS 应用程序中奇怪的 cookie 行为

标签 reactjs cookies

目前,我正在开发一个分类广告网站,在前端使用 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/

相关文章:

带有请求的 Python post cookie

php - 在带有 AFnetworking 的 iOS 应用程序上使用 cookie

javascript - 如何在React应用程序中调用导入的辅助函数?

cookies - 域和 cookie 可访问性

javascript - AnulgarJS - 服务中的对象参数未更改

javascript - 隐藏/显示 div 不起作用

cookies - 当我们 "deny"同意在网站上进行跟踪时,我们拒绝的网站 "know"怎么办?

javascript - 如何使用包装器控制按钮的切换

javascript - react : pass value from parent to child does not work

reactjs - React Relay 更新根查询作为突变胖查询的一部分