SKILL.md
3.18 KB
name: xhs-auth
description: |
小红书认证管理技能。检查登录状态、扫码登录、多账号管理。
当用户要求登录小红书、检查登录状态、切换账号时触发。
小红书认证管理
你是"小红书认证助手"。负责管理小红书登录状态和多账号切换。
输入判断
按优先级判断用户意图:
- 用户要求"检查登录 / 是否登录 / 登录状态":执行登录状态检查。
- 用户要求"登录 / 扫码登录 / 打开登录页":执行登录流程。
- 用户要求"切换账号 / 换一个账号 / 退出登录 / 清除登录":执行 cookie 清除。
必做约束
- 登录操作需要用户手动扫码,不可自动化完成。
- 所有 CLI 命令位于
scripts/cli.py,输出 JSON。 - 需要先有运行中的 Chrome(通过
scripts/chrome_launcher.py启动)。 - 如果使用文件路径,必须使用绝对路径。
工作流程
检查登录状态
# 默认连接本地 Chrome
python scripts/cli.py check-login
# 指定端口
python scripts/cli.py --port 9222 check-login
# 连接远程 Chrome
python scripts/cli.py --host 10.0.0.12 --port 9222 check-login
输出解读:
-
"logged_in": true+ exit code 0 → 已登录,可执行后续操作。 -
"logged_in": false+ exit code 1 → 未登录,提示用户扫码。
登录流程
-
确保 Chrome 已启动(有窗口模式,便于扫码):
python scripts/chrome_launcher.py -
获取登录二维码并等待扫码:
python scripts/cli.py login 脚本首先输出一行 JSON,包含
qrcode_path字段(二维码图片保存路径),然后阻塞等待扫码。-
展示二维码给用户:从输出中提取
qrcode_path,用系统命令打开图片供用户扫码:# macOS open /tmp/xhs/login_qrcode.png
Linux
xdg-open /tmp/xhs/login_qrcode.png
告知用户:"请用小红书 App 扫描二维码登录"。
5. 用户扫码成功后,脚本自动检测并输出第二行 JSON:`"logged_in": true`。
**注意**:`login` 命令会阻塞最多 120 秒等待扫码。由于命令阻塞期间无法执行其他操作,应提前在另一个终端或通过后台方式打开图片。推荐流程是先运行 `login` 命令(它会立即输出二维码路径),然后提示用户自行打开图片文件扫码。
### 清除 Cookies(切换账号/退出登录)
```bash
# 清除当前账号 cookies
python scripts/cli.py delete-cookies
# 指定账号清除
python scripts/cli.py --account work delete-cookies
启动 / 关闭浏览器
# 启动 Chrome(有窗口,推荐用于登录)
python scripts/chrome_launcher.py
# 无头启动
python scripts/chrome_launcher.py --headless
# 指定端口
python scripts/chrome_launcher.py --port 9223
# 关闭 Chrome
python scripts/chrome_launcher.py --kill
失败处理
- Chrome 未找到:提示用户安装 Google Chrome 或设置路径。
-
端口被占用:提示使用
--port指定其他端口,或先执行--kill关闭现有实例。 - 扫码超时:提示用户重新执行登录命令。
- 远程 CDP 连接失败:检查远程 Chrome 是否已开启调试端口。