deepscan-login

SKILL.md

DeepScan 登录授权

所有脚本路径相对于本 Skill 目录。

支持两种登录方式:扫码登录API Key 登录

Step 1: 检查是否已登录

python scripts/auth.py get-token
  • 返回 {"token": "..."} → 已登录,跳到 Token 使用方式
  • 退出码为 1 → 未登录,根据场景选择下方登录方式。

方式 A:API Key 登录

当用户直接提供了 API Key(如 sk-xxxxeyJxxx 格式),直接保存即可:

python scripts/auth.py save-token {api_key}

告知用户:API Key 已保存,登录成功,可以开始使用扫码本功能。


方式 B:扫码登录

当用户发起登录但未提供 API Key 时,走扫码流程。

Step 2: 发起授权

python scripts/auth.py initiate

返回示例:

{
  "token": "qIksuKLU",
  "auth_url": "https://qr67.cn/auth/qIksuKLU",
  "qrcode_path": "/tmp/deepscan_qr_qIksuKLU.png",
  "expires_in": 300
}

记录返回的 token,后续轮询需要使用。

Step 3: 展示二维码并提示 API Key 选项

同时通过以下两种方式提供二维码,确保用户能在任意环境中扫码:

方式一:图片(部分 Agent 支持)

使用 Read 工具读取 qrcode_path 指向的 PNG 图片,直接展示给用户。

方式二:浏览器链接(通用)

auth_url 拼接到草料二维码生成链接的 text 参数:

https://mh.cli.im/?text={auth_url}

例如 auth_urlhttps://qr67.cn/auth/qIksuKLU,则链接为:

https://mh.cli.im/?text=https://qr67.cn/auth/qIksuKLU

告知用户:

请扫描上方二维码,或 点击此链接 在浏览器中打开二维码后扫描,使用「草料扫码器」微信小程序完成登录授权,二维码有效期 5 分钟。

也可以直接提供 API Key 完成登录(跳过扫码)。

Step 4: 等待用户扫码

如果用户在等待期间提供了 API Key,直接跳转到方式 A 保存即可,无需继续轮询。

每隔 5 秒执行一次,最多 60 次(共 300 秒):

python scripts/auth.py poll {token}
  • 返回 {"success": false} → 用户尚未扫码,继续等待。
  • 返回 {"success": true, "api_key": "eyJ..."} → 授权成功,记录 api_key,进入 Step 5。
  • 60 次后仍未成功 → 告知用户二维码已过期,可重新发起登录。

轮询期间使用 sleep 5 等待,不要向用户输出每次轮询结果。

Step 5: 保存登录凭证

将轮询返回的 api_key 保存(注意:保存的是 api_key,不是 Step 2 的短 token):

python scripts/auth.py save-token {api_key}

告知用户登录成功,可以开始使用扫码本功能。

Token 使用方式

后续所有接口调用时携带 Header:

Authorization: Bearer {token}

API 基础地址:https://data.cli.im/x-deepscan

错误处理

  • 网络错误:提示用户检查网络,可重试。
  • 二维码过期:重新执行 Step 2。
  • Token 失效(接口返回 401):删除本地 token 后重新登录。
python -c "import os; p=os.path.expanduser('~/.deepscan/token'); os.remove(p) if os.path.exists(p) else None"
Weekly Installs
1
First Seen
10 days ago
Installed on
mcpjam1
claude-code1
replit1
junie1
windsurf1
zencoder1