From 76bcbffcfebef026f254aa9c6403d4b59443cb0a Mon Sep 17 00:00:00 2001 From: sunlei Date: Sat, 13 Jun 2026 09:25:50 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=9B=BA=E5=8C=96NapCat=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E7=A0=81=E5=B7=A5=E4=BD=9C=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tools/workflow.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tools/workflow.ts b/src/tools/workflow.ts index eb9887e..91ae825 100644 --- a/src/tools/workflow.ts +++ b/src/tools/workflow.ts @@ -607,6 +607,7 @@ export function buildComponentWorkflow( "后端拿旧 login state 判断成功", "把 ACCOUNT 当成登录凭据,忽略 QQ 历史登录态、账号密码或扫码兜底", "在请求日志、Loki 或列表接口里暴露 QQ 登录密码", + "把 proofWaterUrl 当作验证码完成链接,或伪造 ticket/randstr 继续登录", ], files: [ "Node/kt-template-online-api/src/qqbot/account", @@ -619,6 +620,8 @@ export function buildComponentWorkflow( "看门狗自动登录只跑 quick -> password,扫码必须由管理员手动触发", "账号登录密码前端只传 RSA-OAEP 加密字段 encryptedLoginPassword,后端用 QQBOT_ACCOUNT_SECRET_KEY 二次加密落库,列表不回显", "ACCOUNT 只指定目标账号;免扫码优先依赖数据卷历史登录态,密码登录失败或触发强制扫码时再进二维码", + "密码登录触发验证码时保持 scan session pending,Admin 通过 TencentCaptcha 拿 ticket/randstr/sid,再由 API 调用同一 NapCat 容器 /api/QQLogin/CaptchaLogin", + "验证码 pending、cancel、expire、success 和失败终态都必须清理临时密码环境变量,清理失败要阻断成功或二维码兜底", "SSE 返回 step/status/qrcode/error", "容器重启只在必要时触发,优先直接通信 NapCat API", ], @@ -627,7 +630,7 @@ export function buildComponentWorkflow( "docker inspect 确认已绑定容器存在 ACCOUNT=", "docker restart 后 WebUI CheckLoginStatus/GetQQLoginInfo 验证 isLogin/online/uin;失败时检查 NapCat 日志是否为无历史登录记录、密码登录失败或需扫码验证", "scan/events 能看到 quick-login-start/quick-login-fallback/password-login-start/password-login-fallback/重置/生成二维码/等待扫码/成功或失败", - "目标 Jest 覆盖 quick 成功、password 成功、password 失败进二维码、密文保存、容器 env 注入", + "目标 Jest 覆盖 quick 成功、password 成功、password 失败进二维码、验证码 CaptchaLogin 回传、密文保存、容器 env 注入和清理失败阻断", "手动刷新不超时", "过期二维码不再复用", ],