【问题标题】:Set Cookie in React app works in localhost but not in production在 React 应用程序中设置 Cookie 在 localhost 中有效,但在生产环境中无效
【发布时间】:2022-02-06 23:23:23
【问题描述】:

我正在尝试在我的 react web 应用程序的客户端设置一个 cookie。
我正在使用部署到 Firebase 的 CRA。

尝试了 js-cookiereact-cookie - 在这两种情况下,我都看到设置的 cookie 代码运行正确。
在 localhost 中开发时,一切正常 - 但在生产中从未创建任何 cookie。

我错过了什么吗?

【问题讨论】:

  • 您的 cookie 是否命名为 __session? Firebase 基础架构会在网络层剥离任何其他名称的 cookie,这意味着它永远不会到达后端。尝试更改 cookie 的名称并再次测试。
  • 你怎么知道cookie没有设置?是通过在 JavaScript 中检查还是使用浏览器扩展程序?检查属性httpOnly 使 cookie 对 JS 不可见,secure 如果设置在不安全 (http) 连接上,将使浏览器不接受 cookie。还要检查 cookie 的域是否与您的 url 对应。在开发工具的network选项卡中检查headers,检查后续请求是否包含cookie。
  • @fast-reflexes 奇怪的是,现在看起来一切正常。没有改变任何东西。我通过检查 Chrome DevTools 中的应用程序选项卡并刷新那里的项目来检查它。也许有一些错误阻止我看到它,idk。
  • 你在 localhost 中尝试过生产模式吗?这行得通吗?

标签: reactjs firebase cookies js-cookie react-cookie


【解决方案1】:

根据react-cookiedocssetCookie(name, value, [options])removeCookie(name, [options]) 接受 domain 选项对象中的键。您是否使用您的生产网址作为 domain 键的值?

【讨论】:

  • 我尝试了使用和不使用域:/
  • 只是一个想法 - 检查一次 cookie 在您正在测试的浏览器中是否没有被阻止。另外,检查是否有任何广告拦截器阻止 cookie。
猜你喜欢
  • 2012-04-21
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
相关资源
最近更新 更多