Token 管理

API 访问令牌的管理指南

概述

Token 是调用 NDPR API 的凭证。每个 Token 可以关联到一个服务器,并具有相应的权限。

创建 Token

端点

Text
POST /token/get

请求参数

参数类型必填说明
uuidstring服务器唯一标识符
mailstring管理员邮箱
keystring管理员密钥的 SHA256 哈希

示例

Bash
# 计算密钥哈希 KEY_HASH=$(echo -n "admin" | sha256sum | cut -d' ' -f1) # 创建 Token curl -X POST http://localhost:5030/token/get \ -H "Content-Type: application/json" \ -d "{ \"uuid\": \"server-001\", \"mail\": \"admin@example.com\", \"key\": \"$KEY_HASH\" }"

响应

JSON
{ "token": "aBcD1234EfGh5678IjKlMnOpQrSt" }

删除 Token

端点

Text
POST /token/del

示例

Bash
curl -X POST http://localhost:5030/token/del \ -H "Content-Type: application/json" \ -d "{ \"token\": \"aBcD1234EfGh5678IjKlMnOpQrSt\", \"key\": \"$KEY_HASH\" }"

查询 Token 列表

端点

Text
GET /token/list

查询参数

参数类型必填说明
mailstring邮箱地址
keystring密钥哈希

示例

Bash
curl "http://localhost:5030/token/list?mail=admin@example.com&key=$KEY_HASH"

响应

JSON
{ "tokens": [ { "uuid": "server-001", "token": "aBcD1234EfGh5678IjKlMnOpQrSt" }, { "uuid": "server-002", "token": "XyZw9876VuTs5432QrPoNmKlJi" } ] }

验证 Token

端点

Text
POST /token/auth

示例

Bash
curl -X POST http://localhost:5030/token/auth \ -H "Content-Type: application/json" \ -d "{ \"token\": \"aBcD1234EfGh5678IjKlMnOpQrSt\", \"key\": \"$KEY_HASH\" }"

响应

JSON
{ "message": "Passed" }

权限管理

授予上传权限

默认创建的 Token 没有上传封禁数据的权限,需要手动授权:

Text
POST /token/permission/add
Bash
curl -X POST http://localhost:5030/token/permission/add \ -H "Content-Type: application/json" \ -d "{ \"token\": \"aBcD1234EfGh5678IjKlMnOpQrSt\", \"key\": \"$KEY_HASH\" }"

撤销上传权限

Text
POST /token/permission/del

检查权限

Text
POST /token/permission/auth
Bash
curl -X POST http://localhost:5030/token/permission/auth \ -H "Content-Type: application/json" \ -d "{ \"token\": \"aBcD1234EfGh5678IjKlMnOpQrSt\", \"key\": \"$KEY_HASH\" }"

安全建议

<div class="custom-block warning">

<div class="custom-block-title">安全提示</div>

1. 每个服务器使用独立的 Token<br>

2. 定期轮换 Token<br>

3. 妥善保存 Token,不要提交到公开仓库<br>

4. 及时撤销不再使用的 Token

</div>

错误响应

状态码错误消息说明
400Missing params缺少必要参数
400UUID not foundUUID 不存在
400Token not foundToken 不存在
401Auth failed认证失败
500Server error服务器错误