You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cookie-universal-nuxt服务端部署后刷新页面Cookie数据丢失

问题原因
  • nuxt.config.js中server.host配置为localhost,部署到服务器后该配置会导致SSR阶段服务端仅监听本地回环地址,无法匹配用户实际访问的域名,服务端读取Cookie时无法获取对应域名下的存储值,刷新页面走SSR渲染时就会表现为Cookie丢失。
  • Cookie写入时缺少生产环境必要的配置参数:如果部署环境为HTTPS、或存在跨子域访问场景,未配置secure、sameSite、domain参数时,浏览器会拦截Cookie写入,或写入的Cookie作用域不符合预期,页面刷新后无法读取到对应值。
修复方案

1. 修改服务监听配置

将nuxt.config.js中server.host的值从localhost改为0.0.0.0,让服务监听所有可用网络接口,正确识别实际访问域名:

export default {
 mode: 'universal',
 ssr: true,
 target: 'server',
 modules: ['cookie-universal-nuxt'],
 server: {
   port: 4002,
   host: '0.0.0.0'
 }
}

2. 补全Cookie写入参数

根据实际部署场景补全Cookie配置项:

同域名无跨子域需求场景

$cookies.set('cart', cookieParams, {
   path: '/',
   maxAge: 60 * 60 * 24 * 7,
   // HTTPS环境开启secure,HTTP环境设为false
   secure: process.env.NODE_ENV === 'production',
   // 设置同站点策略,避免浏览器默认拦截
   sameSite: 'lax'
});

需要跨子域共享Cookie场景

额外添加domain参数,值为你的根域名(前面带点,支持所有子域共享):

$cookies.set('cart', cookieParams, {
   path: '/',
   maxAge: 60 * 60 * 24 * 7,
   secure: process.env.NODE_ENV === 'production',
   sameSite: 'lax',
   domain: '.your-domain.com' // 替换为实际业务的根域名
});

注意:如果Nuxt服务前挂载了Nginx等反向代理,需要将请求头中的host、origin字段原样透传给Nuxt服务,否则SSR阶段仍会因为域名识别错误导致Cookie读写异常。

内容的提问来源于stack exchange,提问作者Md Ali Zinnah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 19:01:08