本地主机和谷歌应用引擎(自定义谷歌域)之间的 Cookie 不持久

时间:2021-04-06 09:18:55

标签: reactjs express cookies cross-domain

我在这个问题上研究了很长时间,但找不到解决方案。 所以我的问题是:

我有一个 react 前端和一个 nodejs/express 后端安装在本地运行良好(该应用程序应该从后端获取 3 个 cookie 才能正常运行) 所以我在谷歌应用引擎上部署了我的后端(使用自定义域)。

前端可以登录app获取这些cookies,但是这些cookies不是持久化的。 如果我尝试重新加载页面或单击链接(例如获取帐户),它们就会消失。

前端代码可以在这里找到:front-end 可在此处找到后端代码:back-end

该应用的运行方式如下: 您尝试记录 => 如果成功,您将获得 3 个 cookie,其中一个带有 JWT。 在前台应该查看这些 cookie 以使 UI 正常工作之后。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好的,经过数周的研究和测试,我解决了它(在 netlify 上)。

就像我说的,后端在带有自定义域的谷歌应用引擎上,前端在本地主机上(或用于在线测试的 netlify)。

所以我也必须设置一个自定义的域来 netlify 并将两者都放在同一个域上。他们只有 2 个不同的子域。

我必须明确地将域设置为我的 cookie(使用 js-cookie)。 所以我的 cookie(在后端)看起来像:

cookie("groupomania", true, {
    maxAge: 7200000,
    httpOnly: false,
    sameSite: "None",
    secure: true,
    domain: "myDomain.com"
    
  })

我的提取选项请求有这些选项:

method: "POST",
  headers: { "Content-Type": "application/json" },
  credentials: "include",
  crossDomain: true,

所以如果这个解释可以帮助某人,我很高兴。 祝你有美好的一天!