【发布时间】:2022-01-23 18:28:57
【问题描述】:
我正在使用 Node + Express 后端和 NextJS 前端(单独的服务器)开发一个全栈应用程序,并且无法请求浏览器附加作为来自节点服务器的响应标头的一部分而提供的 cookie。这是设置:
- Node 服务器在 localhost:3000 上运行,NextJs 服务器在 localhost:3001 上运行。
- 我在 etc/hosts 中设置了别名,将 someAlias.com 路由到 127.0.0.1。
使用前端 UI(端口 3001),我能够使用 JsHttp 的 cookie 模块和后端(端口 3000)的以下代码出售 cookie:
import { serialize } from 'cookie';
...
const cookie = serialize(TOKEN_NAME, TOKEN_VAL, {
httpOnly: true,
sameSite: 'none',
});
我能够在响应中观察到 Set-Cookie 标头。
但是,在随后的请求中,我没有看到附加 cookie。我试过摆弄上面的 cookie 序列化参数但没有成功:
以下是我尝试过的论点:
domain: ['.someAlias.com:3000', '.someAlias.com:3001']path: '/'domain: '.someAlias.com'
我感觉这可能只是由于前端和后端服务器端口不同,但所有请求都在客户端发起,转到 localhost:3000(后端端口)。所以不确定我在这里可能做错了什么。
====== 更新 =======
我又进行了几次实验,发现当我直接访问 URL 时,NextJs 会在服务器端呈现页面。当我在应用程序内的页面之间进行转换时,页面呈现在客户端,它直接查询后端端口 3000。不幸的是,在这两种情况下,我都没有看到设置了任何 cookie...
【问题讨论】:
标签: javascript node.js cookies next.js setcookie