API 文档
两个接口搞定接入:校验授权、查询状态
概览
| 接口 | 方法 | 用途 |
|---|---|---|
/api/authorize.php | POST | 校验授权码,首次调用自动绑定设备,返回签名令牌 |
/api/query.php | GET / POST | 查询授权状态,不绑定设备 |
所有响应均为 JSON,统一结构:{ code: 0, msg: "ok", data: {...}, ts: 1700000000 }。code = 0 表示成功,其余为失败。
1. 请求授权
POST https://auth.lingbu.top/api/authorize.php,Content-Type: application/json
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| auth_code | string | 是 | 用户控制台中的授权码,形如 AUTH-XXXX-XXXX-XXXX-XXXX |
| device | string | 是 | 设备指纹,4-64 位。建议取设备 SN / 主板序列号的哈希,保证稳定不变 |
curl -X POST "https://auth.lingbu.top/api/authorize.php" \
-H "Content-Type: application/json" \
-d '{"auth_code":"AUTH-7F3K-9QW2-M4XP-Z8HR","device":"sn-8a3f19d2"}'
成功响应:
{
"code": 0,
"msg": "ok",
"data": {
"auth_code": "AUTH-7F3K-9QW2-M4XP-Z8HR",
"device": "sn-8a3f19d2",
"product": "标准授权",
"expires_at": "2026-11-08 10:00:00",
"expires_ts": 1762567200,
"token": "9c1f...",
"token_type": "HMAC-SHA256",
"new_bind": true,
"server_time": "2026-11-01 10:40:50"
},
"ts": 1762000050
}
token = base64url(HMAC-SHA256(auth_code + "|" + device + "|" + expires_ts, api_secret))。若需要在客户端离线校验,可在工具内嵌入同一密钥;也可以只信任接口返回结果。
2. 查询状态
GET https://auth.lingbu.top/api/query.php?auth_code=AUTH-7F3K-9QW2-M4XP-Z8HR
{
"code": 0,
"msg": "ok",
"data": {
"auth_code": "AUTH-7F3K-9QW2-M4XP-Z8HR",
"status": "valid",
"device": "sn-8a3f19d2",
"bound": true,
"product": "标准授权",
"expires_at": "2026-11-08 10:00:00",
"expires_ts": 1762567200,
"remaining": 566400,
"server_time": "2026-11-01 10:40:50"
},
"ts": 1762000050
}
status 取值:valid / expired / banned。
错误码
| code | 含义 |
|---|---|
| 0 | 成功 |
| 1001 | 缺少参数 / 参数格式不正确 |
| 1002 | 授权码格式不正确 |
| 1003 | device 参数无效 |
| 1101 | 授权码不存在 |
| 1102 | 授权码已被封禁 |
| 1103 | 授权码已过期 |
| 1104 | 授权码已绑定其它设备 |
| 429 | 请求过于频繁(同 IP 10 分钟内失败超过 20 次) |
| 5000 | 服务端异常 |
接入建议
- 设备指纹要稳定:用序列号 + 主板 ID 拼接后做 SHA-256,不要用会变化的时间戳或随机数。
- 每次启动工具时调用一次
authorize.php,成功后再执行功能;过期或失败时提示用户续费。 - 不要在前端明文存放密钥;若做离线校验,建议对密钥做简单混淆。
- 同一授权码换设备会返回
1104,需要用户联系管理员在后台解绑。