Set-Cookie: sid=abc; Path=/; Secure; SameSite=None
# 本机 http 调试临时用 Lax,别把 None 带上去

嵌在 iframe 里的登录页每次刷新都跳回登录页,Chrome 控制台提示 This Set-Cookie was blocked because it had the SameSite=None attribute but lacked the Secure attribute,同一套页面用 Firefox 打开却完全正常,用的还是同一份后端配置。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,新版 Chrome 要求 SameSite=None 必须同时带上 Secure,缺一个整条 Cookie 就被浏览器丢弃,走 HTTP 或者漏写属性都会命中,服务端日志里一点异常都看不到,排查时容易往会话逻辑上想。

「SameSite 配置」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

处理上按这个顺序:先确认站点已经全站走 HTTPS,再给这条 Cookie 把 Secure 属性补上,别只在测试环境改;SameSite 按实际场景选择 None 或者 Lax,不要依赖浏览器给的默认值;在开发者工具的 Application 面板里确认这条 Cookie 真的落盘,而不是只出现在响应头里。

改完只确认一件事:打开开发者工具的 Application 面板能看到这条 Cookie,iframe 里刷新不再跳回登录页。

作者 9823189