用途:处理 DeepScan 的登录授权,支持扫码登录和 API Key 登录两种方式,适用于用户需要登录、已提供 API Key、扫描前需授权、token 失效或首次使用等场景。所有脚本路径相对于本 Skill 目录。
主要能力与使用方式:
- 检查登录状态:运行 python scripts/auth.py get-token。返回 {"token": "..."} 表示已登录;退出码为 1 表示未登录。
- API Key 登录:用户直接提供 API Key 时,运行 python scripts/auth.py save-token {api_key} 保存,随后即可使用扫码本功能。
- 扫码登录:未提供 API Key 时,运行 python scripts/auth.py initiate 发起授权,返回 token、auth_url、qrcode_path 与 expires_in 等信息。展示二维码有两种方式:用 Read 工具读取 qrcode_path 指向的 PNG 图片;或把 auth_url 拼接到 https://mh.cli.im/?text={auth_url} 供浏览器打开后扫码。用户需使用「草料扫码器」微信小程序完成授权,二维码有效期 5 分钟。
- 轮询授权:每隔 5 秒运行一次 python scripts/auth.py poll {token},最多 60 次(共 300 秒)。返回 {"success": false} 表示尚未扫码,返回 {"success": true, "api_key": "eyJ..."} 表示授权成功。轮询期间使用 sleep 5 等待,不向用户输出每次轮询结果。
- 保存凭证:将轮询得到的 api_key 通过 python scripts/auth.py save-token {api_key} 保存,注意保存的是 api_key,不是发起授权时的短 token。
后续调用接口时携带 Header:Authorization: Bearer {token},API 基础地址为 https://data.cli.im/x-deepscan。
错误处理:网络错误时提示用户检查网络并可重试;二维码过期时重新执行发起授权步骤;接口返回 401 表示 token 失效,删除本地 token 后重新登录,可用 python -c "import os; p=os.path.expanduser('~/.deepscan/token'); os.remove(p) if os.path.exists(p) else None"。
限制:二维码有效期为 300 秒,超时需重新发起;以上步骤与参数均来自资料,未提供的其他功能、收费或平台信息暂未提供。