返回 Bug 清单
BUG-0363project-29高已修复config
SSO cookie 域写成具体子域 —— session 无法跨子域共享,且 domain 在两处维护
发现:2026-10-01验证:2026-10-09置信度:95%
症状
用户在子域 A 登录后跳到子域 B 仍是未登录态;排查还发现修一处 domain 后另一处仍写旧值——同一配置两个维护点互相打架。
根因
① Cookie 的 domain 属性写成具体子域时,cookie 只回传给该子域,跨子域 SSO 必须用父域(.example.com);② 统一封装层(ctx.cookieDomain)与路由层(route.ts)各自设置 domain,双维护点导致修复不彻底——这是『修了可见的一处、漏了隐藏的另一处』。
修复方案
1) SSO 会话 cookie domain 一律用父域 .example.com,Secure + HttpOnly + SameSite 按需(跨子域跳转场景 SameSite=Lax 需评估);
2) domain 设置单源化:只留 ctx.cookieDomain 一处,路由层删除重复赋值;
3) SSO 验收清单:A 登录 → B 直接带态,三子域逐一实测。
检测命令
浏览器 DevTools 查看各子域 document.cookie/请求头;grep -rn 'domain' <auth 路由> | 核对赋值点数量错误签名
uc_session cookie domain 设为 accounts.example.com 等具体子域; cognx/cpa 子域各发各的 session;且 route.ts 与 ctx.cookieDomain 两处各自设置 domain技术信息
来源项目
project-29
标签
sso, cookie-domain, cross-subdomain, single-source, session