SuperAPI AI 工具集

supsub-auth

部署与运维

查看项目

更新于 10-16 04:40

技能介绍

用途

supsub-auth 是 SupSub CLI 的认证管理技能,用于完成登录、登出以及查看当前登录状态。它是使用其他 supsub 子命令前的凭证准备环节。

前置条件

安装方式二选一:

  • native 安装:curl -fsSL https://raw.githubusercontent.com/SupSub-AI/supsub-cli/master/scripts/install.sh | bash(装到 ~/.local,支持后台自动更新)
  • 包管理器:npm i -g @supsub/cli 或 pnpm add -g @supsub/cli

登录凭证保存在 ~/.supsub/config.json,目录权限 0700,文件权限 0600。

主要能力

登录

supsub auth login 会自动打开浏览器,走 OAuth 设备授权流程(Device Authorization),授权成功后把 access_token / refresh_token 写入 ~/.supsub/config.json。这是 CLI 唯一的登录方式,不支持 API Key 登录。

无头 / e2e 环境可跳过自动打开浏览器,手动复制终端里的链接去授权:

SUPSUB_NO_BROWSER=1 supsub auth login

JSON 模式(-o json)下,登录成功 stdout 输出:

{"success":true,"data":{"client_id":"supsub-cli","email":"...","name":"..."}}

其中 email / name 来自登录后拉取的用户信息;若拉取失败这两个字段缺省,退化为 {"client_id":"supsub-cli"};提示信息走 stderr。

查看状态

supsub auth status 显示当前登录用户、脱敏后的凭证及其来源。正常 OAuth 登录后 api_key_source 为 config(凭证来自配置文件里的 access_token);api_key 字段是脱敏后的访问令牌,CLI 沿用 sk_live_*** 前缀展示,并非真有 API Key。

supsub auth status -o json 的 JSON 形态:

{ "success": true, "data": { "email": "...", "name": "...", "client_id": "supsub-cli", "api_key_source": "config", "api_key": "sk_live_***xxxx" } }

未认证时以退出码 2(UNAUTHORIZED)退出,并提示用户运行 supsub auth login。

登出

supsub auth logout 会从 ~/.supsub/config.json 移除已保存的凭证。JSON 模式下输出 {"success":true,"data":{}}。

使用方式与凭证解析

请求所用的 Bearer 凭证由 resolveApiKey() 解析,优先级从高到低:配置文件 access_token(OAuth 设备授权令牌)> 配置文件 bearer_token(高级用法:手动从浏览器粘贴的临时会话 token)。

令牌自动续期:access_token 约 24 小时到期,CLI 在过期前(或收到 401 时)用 refresh_token 自动换新令牌并写回配置文件,全程无感。refresh_token 约 14 天有效,只有它也失效时才需要重新 supsub auth login。

401 响应的处理逻辑(见 src/http/token-refresh.ts):

  • 续期成功:命令正常返回,用户无感,无需重新登录。
  • refresh_token 也已失效:清除全部凭证(clearAuth())并以退出码 2 退出,此时才需要重新 supsub auth login。
  • 续期请求本身网络异常 / 服务端 5xx:凭证保留不清,以退出码 10(NETWORK)退出,稍后重试即可,不要据此让用户重新登录。

自定义 API base URL:设置 SUPSUB_API_URL(默认 https://supsub.net),用于本地或测试环境。

常见退出码:0 OK,2 UNAUTHORIZED,3 PLAN_EXPIRED,10 NETWORK,11 SERVER,64 INVALID_ARGS。解析 JSON 时使用 -o json。

适用场景

  • 首次使用 SupSub CLI 前完成浏览器授权登录。
  • 查询当前使用的 SupSub 账号、凭证来源与脱敏令牌。
  • 在无头 / 自动化环境中通过 SUPSUB_NO_BROWSER=1 手动完成授权。
  • 在本地或测试环境通过 SUPSUB_API_URL 指向自定义 API 地址。

限制

  • 登录唯一入口是 supsub auth login,不支持 API Key 登录,没有 --api-key flag 或 SUPSUB_API_KEY 环境变量。
  • 其他细节(如账号体系、套餐、计费、平台支持范围等)资料暂未提供。