目前我们在跨域设置 cookie 时遇到问题。设置是,我们将 NextJS 作为前端,将 NestJS 作为后端。现在,这个后端部署在 DigitalOcean 中,我们的前端开发人员在本地主机上。目前我们在这种情况下设置 cookie 时遇到问题。
在后端,cors 凭据已设置为 true,在使用 graphql apollo 的前端,凭据已设置为 include。 所以从技术上讲,在本地主机上同时运行服务器和客户端,cookie 没有问题,它正在被设置。但是,一旦前端开发人员在 DigitalOcean 上使用 API 端点,cookie 就会被阻止。
我已经尝试了很多方法来使用 cookie 选项,例如将 httpOnly 设置为 true 或 false,将 sameSite 设置为 none 但它要求 Secure 为 true 所以不可能。将域设置为本地主机或 127.0.0.1 等。
那么你们知道我们该如何解决这个问题吗?我们想要这种结构,以便前端开发人员不需要在本地运行服务器,他们只需要指向该 API,仅此而已。谢谢!
最佳答案
你好,我的项目已经在本地主机端口 3000(nestjs)、5000(nextjs) 上运行 此本地主机环境可以共享 cookie
所以在生产中我使用了 www.domain.com(nestjs), service.domain.com(nextjs) 并设置 cookie 的域 = .domain.com 以共享 nextjs 和 nestjs 的 cookie
它工作正常。希望这对其他人有帮助,哈哈。
关于node.js - 在 express/nestjs 中跨域设置 cookie(云端后端/本地主机上的 NextJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65370090/