Cookie 不区分端口,所以同域多端口共享登录态

**在 `localhost:3018` 登录后访问 `localhost:3024` 能直接用 —— 因为 Cookie 按域名隔离、不按端口隔离。** 同时这解释了一个反向现象:只要密钥不同,同一个 Cookie 就解不开。
  • 能否「认」这份 Cookie 取决于服务端解密密钥是否相同:NEXTAUTH_SECRET 用来加密、签名、解密会话 Cookie,换回主项目的真实密钥后就能识别既有登录状态;用 .env.example 的占位密钥则报 no matching decryption secret。
  • 因此 worktree / 多端口调试时,.env.local 里的会话密钥要和主项目一致(软链接即可),但 NEXTAUTH_URL 要改成当前端口。
  • 反过来,NEXTAUTH_SECRET 是服务器端密钥,不是登录密码、也不是第三方 API Key;它应保持私密、稳定、不入 Git,一旦修改,所有已有登录会话立即失效。

排查提示:改了端口后「登录态丢失」通常不是 Cookie 不共享,而是密钥对不上;「登录态串了」才是 Cookie 共享域过宽。

相关