From b0abb08e296d344c2deb41f1d59f8ca99cb67e89 Mon Sep 17 00:00:00 2001 From: fxy Date: Mon, 15 Jun 2026 23:12:29 +0800 Subject: [PATCH] docs: daily log - auth reliability fixes (Secure flag + glob match) --- daily_2026-06-15.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/daily_2026-06-15.md b/daily_2026-06-15.md index 36a91ab..62e0279 100644 --- a/daily_2026-06-15.md +++ b/daily_2026-06-15.md @@ -378,3 +378,31 @@ - 2837 条划线 + 226 条想法 ✅ 全部正常导出 - 文件名:`遥远的救世主.md`(不再有数字) - 无需额外权限,纯 API 调用完成 + +## 收尾:认证可靠性修复(23:05~23:15) + +### 问题1:有的设备频繁要密码 +- **根因**:Set-Cookie 缺少 `Secure` 标志 +- 浏览器看到 HTTPS 连接(经 Caddy 终止 TLS),但 cookie 无 `Secure` 标志 +- 移动端浏览器(尤其 Safari/Chrome iOS)可能将无 Secure 的 cookie 视为 session-only,关闭页面即丢失 +- **修复**:`cookie_val` 加入 `Secure;` +- 注意:虽然 Caddy → auth_proxy 是内部 HTTP,但浏览器看到的是 HTTPS,所以 `Secure` 标志是必要的 + +### 问题2:有的设备点进去页面不见 +- **根因**:Caddy 的 `header Cookie "sess=*"` glob 匹配只匹配 header **开头** +- 当浏览器累积了多个 `.xybkwd.top` 的 cookie(如 Gitea session、其他服务 token),`sess=` 不在 header 最前面时,匹配失败 +- Caddy 认为"无 cookie" → 302 到登录页 → 但实际有 cookie → 循环/白页 +- **修复**:`sess=*` → `*sess=*`(通配符前置,匹配 header 中任意位置) + +### 测试全部通过 +``` +1. 仅 sess cookie → 200 ✅ +2. sess 在中间(其他 cookie 前后夹击)→ 200 ✅ +3. 无 cookie → 302 ✅ +4. 登录 → 302 ✅ +5. 带 cookie 访问 → 200 ✅ +``` + +### 已推送 Gitea +- `fxy/nav-page` commit `eefe9ac` — Caddyfile `sess=*` → `*sess=*` +- `beast/server-ops` commit `65d28af` — auth_proxy 加 `Secure` 标志