在 Server Component 里用 next/headers 的 cookies() 读登录态,本地 dev 正常,部署后偶发读不到。
import { cookies } from "next/headers";
const c = await cookies();
const token = c.get("token")?.value;
排查发现是:
cookies()在 Next 15 是 async 了,要 await(已经改)。- 跨域 cookie 没带
SameSite=None; Secure,CDN 回源时丢。 - 缓存的页面根本不会重新执行 cookies(),必须
dynamic = 'force-dynamic'。
最后给所有依赖登录态的页面加了 force-dynamic,问题消失但性能掉了。
有更好的方案吗?