Cookie 不区分端口,所以同域多端口共享登录态
- 会话 Cookie 的作用域是 host,端口不参与匹配,所以同一域名的不同端口会互相携带。
- 能否「认」这份 Cookie 取决于服务端解密密钥是否相同:
NEXTAUTH_SECRET用来加密、签名、解密会话 Cookie,换回主项目的真实密钥后就能识别既有登录状态;用.env.example的占位密钥则报no matching decryption secret。 - 因此 worktree / 多端口调试时,
.env.local里的会话密钥要和主项目一致(软链接即可),但NEXTAUTH_URL要改成当前端口。 - 反过来,
NEXTAUTH_SECRET是服务器端密钥,不是登录密码、也不是第三方 API Key;它应保持私密、稳定、不入 Git,一旦修改,所有已有登录会话立即失效。
排查提示:改了端口后「登录态丢失」通常不是 Cookie 不共享,而是密钥对不上;「登录态串了」才是 Cookie 共享域过宽。
相关
- 登录发起与回调必须同域名
- worktree是独立目录产物与配置都隔离
- 接口验证通过不等于浏览器已登录