Skip to content

fix: 修复账号被踢下线后,"刷新二维码"功能无效的问题 - #2030

Open
five-plus-one wants to merge 1 commit into
NapNeko:mainfrom
five-plus-one:fix/issue-1962-refresh-qrcode
Open

fix: 修复账号被踢下线后,"刷新二维码"功能无效的问题#2030
five-plus-one wants to merge 1 commit into
NapNeko:mainfrom
five-plus-one:fix/issue-1962-refresh-qrcode

Conversation

@five-plus-one

@five-plus-one five-plus-one commented Aug 21, 2026

Copy link
Copy Markdown

问题

QQ 账号被强制下线后,WebUI 仍可能显示已失效的旧二维码;点击刷新二维码时,原生 QQ 登录服务有时无法重新生成二维码。 #1962 #2027

此前若由刷新接口直接重启 Worker,会中断正在执行的 HTTP 请求,导致前端出现 ERR_EMPTY_RESPONSE、刷新失败或持续加载;部分情况下即使已经完成登录,页面也可能仍停留在扫码登录界面。

修改内容

  • 为 QQ 登录流程补充二维码等待、已扫码、初始化完成、重连中等状态。
  • 刷新二维码接口等待 QQ 登录服务实际返回新的二维码,再向前端返回结果。
  • 刷新期间提高状态轮询频率,并阻止重复刷新请求覆盖新二维码。
  • QQ 登录成功后同时结合运行时登录状态与 Core 在线状态判断,避免已登录后仍停留在扫码界面。
  • 收到 KickedOffLine 后立即清空旧二维码,避免继续展示或扫描已失效二维码。
  • 被踢下线后由独立事件异步重启 QQ 登录服务,而非在刷新二维码请求中重启,避免中断该请求。
  • 前端在登录服务恢复期间显示“正在重新连接 QQ 登录服务”,静默重试状态请求;收到新二维码后自动恢复扫码界面。
  • 恢复期间不再弹出阻塞性的“登录失败”对话框,也不会将预期的连接中断显示为刷新错误。
  • 登录服务恢复超时后才提示用户重试。

验证

  • 所有本次变更的 TypeScript 文件 ESLint 检查通过。
  • Shell 生产构建通过。
  • 在本地 mlikiowa/napcat-docker:latest 测试容器中验证:
    • 强制下线后旧二维码会被清空;
    • 页面进入 QQ 登录服务恢复状态;
    • 服务重启后能够重新显示新的二维码;
    • 扫码登录完成后页面能够跳转。

@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown

✅ NapCat 构建成功

Success


📦 构建产物

包名 状态 下载
NapCat.Framework ✅ 成功 📥 下载
NapCat.Shell ✅ 成功 📥 下载

📋 构建信息

项目
🏷️ 版本号 0.0.0-pr.2030.800+fec2fb9
📝 提交 fec2fb9
🔗 构建日志 查看详情
🕐 完成时间 2026-08-21 10:36:31 UTC

🚀 快速安装 (Linux)

直连(需要能访问 GitHub)

curl -sSL https://github.com/NapNeko/napcat-pr-release/releases/download/pr-2030-fec2fb9/install.sh | bash

加速(国内推荐,ghfast.top)

curl -sSL https://gh.llkk.cc/https://github.com/NapNeko/napcat-pr-release/releases/download/pr-2030-fec2fb9/install.sh | bash

📦 查看 Release 页面
⚠️ 此为 PR 测试版本,约 5 天后会被自动清理。


🎉 所有构建均已成功完成!

点击上方下载链接获取构建产物进行测试

@five-plus-one
five-plus-one marked this pull request as ready for review August 21, 2026 10:34
@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown

✅ Docker 测试镜像就绪

Success


📋 构建信息

项目
📝 提交 fec2fb9
🔗 PR #2030
🕐 完成时间 2026-08-21 10:40:28 UTC

🚀 快速使用

拉取镜像

docker pull mlikiowa/napcat-docker:pr-2030-fec2fb9

启动容器

docker run -d \
  --name napcat-pr-test \
  -e NAPCAT_UID=$(id -u) \
  -e NAPCAT_GID=$(id -g) \
  -e WEBUI_TOKEN=napcat \
  -p 6099:6099 \
  -p 3000:3000 \
  -p 3001:3001 \
  -v ./napcat/config:/app/napcat/config \
  -v ./napcat/QQ:/app/.config/QQ \
  mlikiowa/napcat-docker:pr-2030-fec2fb9
变量 说明 默认值
WEBUI_TOKEN WebUI 登录 Token napcat
ACCOUNT 自动登录的 QQ 号 (空则手动扫码)
NAPCAT_UID / NAPCAT_GID 容器内运行用户的 UID/GID 0
MODE 预设连接模式(ws / astrbot 等) (空)

⚠️ 此为 PR 测试镜像,保留 5 天后自动清理。


🎉 Docker 测试镜像已就绪!

使用上方命令拉取镜像进行测试

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant