首页 > 解决方案 > 在不同端口上运行的 Nodejs 后端和前端中设置 cookie

问题描述

我正在使用 Express NodeJS,我想让我的后端和前端分开,它们应该在不同的机器上运行。现在我正在使用本地私有 IP(不是本地主机)在本地工作,因此我可以使用连接到我的 Wifi 的所有设备访问网站,但最终计划是拥有 2 个 docker 容器,一个用于后端一个用于前端。

问题是我刚刚实现了身份验证,当我将 cookie 发送到前端时,它们没有设置。我看到其他讨论,人们说出于安全原因,无法将 cookie 从 domainA 设置到 domainB。

据我了解,这在生产中不会出现问题,因为前端可以在 myWebsite.com 访问 DockerA,后端可以在 api.myWebsite.com 访问 DockerB,因此 cookie 应该没有问题因为主根域是相同的(即使 IP 不同)。我的假设正确吗?如果没有,您能解释一下原因,以便我尽快修复设计吗?

问题是:如何在本地模拟这个环境?这样我的开发代码可以表现得与生产中的一样吗?如何使用 Express 在不同端口上本地模拟相同的域?不在本地主机上,而是在私有 IP 地址上。

注意:我不想使用代理,我启用了 CORS 来发出请求。

标签: node.jsdockerexpresscookiesproxy

解决方案


推荐阅读