认证
控制台 API 要求带 HTTP 头:
http
access-token: <JWT>(在 sp-tr-api 中定义为 Constants.ACCESS_TOKEN。)
非交互登录(AI 代理与 CI)
邮箱验证码流程
请求验证码(人工操作,或交给单独的自动化流程):
httpGET /api/login/getVerificationCode/{userName}用验证码换 token:
bashsp auth login --email user@corp.com --code 123456 --jsonREST:
POST /api/login/verify,请求体{ "userName", "verifyCode", ... }除非带
--no-save,CLI 会把 token 写入共享配置文件${XDG_CONFIG_HOME:-~/.config}/softprobe/config.jsonc。
CI 与代理宿主
CLI(录制、回放、应用管理)使用你的用户 JWT:
bash
export SP_TOKEN="eyJ..."
sp app list --jsonJava Agent 在 Softprobe Cloud 上使用租户 API key(长期有效,仅该组织可用):
bash
export SP_TENANT_API_KEY="…" # 来自 sp tenant key ensure 或控制台的设置
export SP_TENANT_ID="35"
sp agent command --app <appId> --json不要把 token 或 API key 提交进 git。泄露后立刻轮换。
刷新 token
bash
sp auth refresh --user user@corp.com --jsonREST: GET /api/login/refresh/{userName}
代理或 CI 任务只拿 token、不碰本地配置时,加 --no-save:
bash
export SP_TOKEN="$(sp auth refresh --user user@corp.com --no-save --json | jq -r .data.token)"访客登录
服务端开启时:
bash
sp auth login --guest --jsonREST: POST /api/login/loginAsGuest
OAuth
OAuth 流程走浏览器。代理应使用预先备好的 SP_TOKEN,而不是自己去走 OAuth 流程。
给人看的文档:GET /api/login/oauthInfo/{oauthType}、POST /api/login/oauthLogin。
查看当前身份
bash
sp auth whoami --json解码 JWT 中的 userName;profile 接口实现后会改为调用它。
错误
| 情况 | 退出码 |
|---|---|
带 --json 但没有 token | 3(AUTH_REQUIRED) |
| token 过期或无效 | 1(API_ERROR) |