因域名不匹配导致Session Cookie无法设置,显式指定域名仍无效
开发者工具中出现如下错误:
尝试通过Set-Cookie头设置Cookie被拦截,因其Domain属性与当前主机URL不匹配。
我搞不懂为什么客户端无法设置Session Cookie,排查后确定是域名问题——我的前端部署在Firebase、后端部署在Cloud Run,二者域名不同。但让我困惑的是,当前端运行在localhost时,即使后端仍为Cloud Run远程服务,却不会出现该问题。
以下是我的Session配置代码:
app.set('trust proxy', 1); app.use(json()); app.use( session({ name: '__session', store: new RedisStore({ client: redisClient }), secret: options.sessionSecret, resave: false, saveUninitialized: false, cookie: { secure: process.env.NODE_ENV === 'PROD' ? true : 'auto', httpOnly: true, maxAge: 1000 * 60 * 60 * 24 * 7, sameSite: process.env.NODE_ENV === 'PROD' ? 'none' : 'lax', domain: '<FRONTEND_URL>', }, }) );
我认为domain属性配置有误,已尝试填写前端域名、后端域名及后端根域名run.app,但问题仍存在。我是否遗漏了什么,或是存在理解误区?
补充说明:
Cookie已配置Secure; SameSite=None。
内容的提问来源于stack exchange,提问作者Fares
相关产品推荐
相关产品推荐

