fix: 隔离登录 tab 防止其他命令复用导致验证码失效
send-code/get-qrcode 保存 login tab 后清除 session tab 引用, 防止中间命令通过 _connect() 复用登录表单 tab 并将其导航走或关闭, 导致 verify-code/wait-login 找不到原始登录表单。
Showing
1 changed file
with
6 additions
and
2 deletions
| @@ -364,8 +364,10 @@ def cmd_get_qrcode(args: argparse.Namespace) -> None: | @@ -364,8 +364,10 @@ def cmd_get_qrcode(args: argparse.Namespace) -> None: | ||
| 364 | 364 | ||
| 365 | qrcode_path = save_qrcode_to_file(png_bytes) | 365 | qrcode_path = save_qrcode_to_file(png_bytes) |
| 366 | 366 | ||
| 367 | - # 记录 tab,供 wait-login 精确reconnect | 367 | + # 记录 login tab,供 wait-login 精确 reconnect |
| 368 | _save_login_tab(page.target_id, args.port) | 368 | _save_login_tab(page.target_id, args.port) |
| 369 | + # 清除 session tab 引用——隔离登录表单,防止其他命令复用并关闭/导航该 tab | ||
| 370 | + _clear_session_tab(args.port) | ||
| 369 | 371 | ||
| 370 | # 只断开 CDP 连接,不关闭 tab——QR 会话保持,用户可继续扫码 | 372 | # 只断开 CDP 连接,不关闭 tab——QR 会话保持,用户可继续扫码 |
| 371 | browser.close() | 373 | browser.close() |
| @@ -413,8 +415,10 @@ def cmd_send_code(args: argparse.Namespace) -> None: | @@ -413,8 +415,10 @@ def cmd_send_code(args: argparse.Namespace) -> None: | ||
| 413 | _output({"logged_in": True, "message": "已登录,无需重新登录"}) | 415 | _output({"logged_in": True, "message": "已登录,无需重新登录"}) |
| 414 | return | 416 | return |
| 415 | 417 | ||
| 416 | - # 记录 tab,供 verify-code 精确 reconnect | 418 | + # 记录 login tab,供 verify-code 精确 reconnect |
| 417 | _save_login_tab(page.target_id, args.port) | 419 | _save_login_tab(page.target_id, args.port) |
| 420 | + # 清除 session tab 引用——隔离登录表单,防止其他命令复用并关闭/导航该 tab | ||
| 421 | + _clear_session_tab(args.port) | ||
| 418 | _output({ | 422 | _output({ |
| 419 | "status": "code_sent", | 423 | "status": "code_sent", |
| 420 | "message": f"验证码已发送至 {args.phone[:3]}****{args.phone[-4:]},请运行 verify-code --code <验证码>", | 424 | "message": f"验证码已发送至 {args.phone[:3]}****{args.phone[-4:]},请运行 verify-code --code <验证码>", |
-
Please register or login to post a comment