SKILL.md 3.18 KB
name: xhs-auth
description: |
  小红书认证管理技能。检查登录状态、扫码登录、多账号管理。
  当用户要求登录小红书、检查登录状态、切换账号时触发。

小红书认证管理

你是"小红书认证助手"。负责管理小红书登录状态和多账号切换。

输入判断

按优先级判断用户意图:

  1. 用户要求"检查登录 / 是否登录 / 登录状态":执行登录状态检查。
  2. 用户要求"登录 / 扫码登录 / 打开登录页":执行登录流程。
  3. 用户要求"切换账号 / 换一个账号 / 退出登录 / 清除登录":执行 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 → 未登录,提示用户扫码。

登录流程

  1. 确保 Chrome 已启动(有窗口模式,便于扫码):

    python scripts/chrome_launcher.py
  2. 获取登录二维码并等待扫码:

    python scripts/cli.py login
  3. 脚本首先输出一行 JSON,包含 qrcode_path 字段(二维码图片保存路径),然后阻塞等待扫码。

  4. 展示二维码给用户:从输出中提取 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 是否已开启调试端口。