SameSite=None 必须配 Secure:Cookie 修复手册
针对现代浏览器 Cookie 策略导致的跨站登录/会话丢失问题,给出可执行修复流程。
现代浏览器对 Cookie 更严格。只要要跨站带 Cookie,`SameSite=None` 就必须与 `Secure` 配合,并走 HTTPS。
本指南涉及工具
Symptoms(现象)
- 登录接口返回成功,但后续请求拿不到会话。
- DevTools 显示 Set-Cookie 被阻止或被丢弃。
- 本地模拟正常,上浏览器或 HTTPS 环境后异常。
Root Cause(根因)
- 设置了 SameSite=None 却没设置 Secure。
- Cookie 的 Domain/Path/过期策略与运行域不匹配。
- CORS 与 Cookie 策略分别配置,最终产生漂移。
Fix Steps(修复步骤)
- 先解析 Set-Cookie,确认 SameSite、Secure、HttpOnly、Domain、Path 等属性。
- 若需要跨站 Cookie,统一改为 SameSite=None + Secure,并保证全链路 HTTPS。
- 联动检查 CORS 凭据头和响应头完整性,确认浏览器会接收并回传 Cookie。
跨站 Cookie 推荐基线
Set-Cookie: sid=abc123; Path=/; HttpOnly; Secure; SameSite=NoneRelated Tool Workflow
FAQ
SameSite=None 不开 HTTPS 可以吗?
现代浏览器不行,必须配 Secure。
SPA 登录能只用 SameSite=Lax 吗?
同站流程通常可行,跨站流程一般需要 None + Secure。