收紧864二维码切换时的退出登录策略

This commit is contained in:
liuwei
2026-05-07 15:55:55 +08:00
parent 904c20bb62
commit e37d807d20
2 changed files with 9 additions and 1 deletions

View File

@@ -492,7 +492,11 @@ def api_switch_login_qr_mode():
result = robot.switch_server_864_login_entry(
login_qr_api=login_qr_api,
login_way=login_way or None,
do_logout=True,
# 切换二维码模式只调整后续登录入口,不主动踢掉服务端当前在线会话:
# 1. 用户已经明确要求“服务端已登录时,除非手动执行,否则不要做 logout”
# 2. 这里改为仅重启本地 provider 线程,让 ABOT 重新接管当前会话或等待下次手动退出后再使用新模式;
# 3. 真正的远端退出动作只保留在 `/api/logout_864`,语义更清晰。
do_logout=False,
)
return jsonify({
"success": True,

View File

@@ -975,6 +975,10 @@ class Robot:
# 2. 用户真正关心的是“后台能否尽快切到新的二维码入口”;
# 3. 因此这里记录日志后继续向下执行重启流程。
self.LOG.warning(f"切换 864 登录入口前执行退出请求失败,继续重启登录流程: {e}")
# `do_logout=False` 时只重启 ABOT 本地 provider不会主动登出远端在线账号
# 1. 这样切换二维码模式不会误把当前服务端现有会话踢下线;
# 2. 若远端本来就已在线,新的 provider 线程会优先尝试接管现有登录态;
# 3. 真正的远端退出只保留给手动点击“退出864登录”的显式动作。
self.ipad_config["login_qr_api"] = normalized_login_qr_api
self.ipad_config["login_way"] = normalized_login_way