admin
ed0c3c0ad5
fix(proxy): 治本 —— 陈旧 dsh-auth cookie 回写清理(档案 98,修 431 → Failed to load plugins)
根因(2026-09-14 实测):dsh **每次实例 (重)启动都换** `dsh-auth-<随机后缀>` 的 **cookie 名**;平台此前
只在**转发给实例时**丢弃旧的(`mergeCookieHeader`),**从不回写浏览器** ⇒ 浏览器 cookie jar **只增不减**
⇒ `Cookie` 请求头越涨越长 ⇒ 实测 **12.8 KB 放行 / 19.1 KB 就被 431**(且 19 KB 时连 `/` 也 431)
⇒ 被 Cloudflare / 本机 nginx 直接拒掉,**请求根本到不了平台** ⇒ 那条 11 MB 合并脚本取不到
⇒ 客户端报 `bundle script … failed to load` ⇒ 界面「Failed to load plugins」。
(旁证全对:平台日志无该请求 ✓/无痕正常=空 cookie 罐 ✓/服务器侧一切正常 ✓)
修法(只动 proxy.ts 一处):在响应头块里对**陈旧名字**回写 `Set-Cookie: <name>=; Path=/; Max-Age=0`。
· **只在「本次响应确实下发了 dsh-auth-*」时才动手** —— 那时才确知当前有效名字,绝不误删在用的那个;
· 其余情形什么都不做;不带 `Domain=`(dsh 下发的是 host-only cookie);
· 即使判断有误,档案 51 的「401 → 取新 cookie 透明重放」也会自愈。
验证:
· 本机 `npm run verify` EXIT=0;服务器 `ci.sh` CI OK(48 pass / 0 fail);
· `scripts/verify-inject.cjs` 新增防回退断言「会清理陈旧 dsh-auth cookie」;
· **端到端实测**:带 2 个假 `dsh-auth-*` 请求 `/?token=…` → 303 响应含 **3 条 Set-Cookie,其中 2 条 Max-Age=0**
正是那两个假名字 ✅
⚠️ 它**救不了已经 431 的当下**(那时请求在 CF/nginx 就被拒、到不了平台)⇒ 用户需**先手动清一次**
(只删 `dsh-auth-*`、保留 `sid`),此后由本机制维持小 jar。⚠️ 根因仍在(官方每重启换名)⇒ **少重启**仍是要点。
2026-09-14 23:01:04 +08:00
..
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00
2026-09-14 21:13:32 +08:00
2026-09-14 04:52:35 +08:00
2026-09-14 23:01:04 +08:00
2026-09-14 22:26:06 +08:00
2026-09-14 00:00:15 +08:00
2026-09-14 21:13:32 +08:00
2026-09-14 21:13:32 +08:00
2026-09-14 21:13:32 +08:00
2026-09-13 16:18:10 +08:00
2026-09-13 16:18:10 +08:00