Skip to content

Token 管理 API

Token 管理 API 支持对 API Token 进行创建、列出、更新和删除操作,并支持设置 Token 过期时间和自动删除策略。

基本信息

  • 端点/api/manage/apiTokens
  • 认证:管理员 Basic Auth 或 API Token(需要管理权限)
  • 内容类型application/json

列出所有 Token

请求

  • 方法GET

功能说明

获取所有 API Token 列表。系统会在返回前自动清理已过期且标记为自动删除的 Token。

响应示例

json
{
  "tokens": [
    {
      "id": "m1abc2def3",
      "name": "上传专用",
      "token": "imgbed_GqloEaR4...",
      "owner": "admin",
      "permissions": ["upload"],
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z",
      "expiresAt": "2024-07-01T00:00:00.000Z",
      "autoDelete": false
    }
  ]
}

创建 Token

请求

  • 方法POST

Body 参数

参数名类型必需默认值说明
namestring-Token 名称
permissionsstring[]-权限列表,可选值:uploaddeletelistmanage
ownerstring-Token 所有者
expiresAtstring | nullnull过期时间,ISO 8601 格式,null 表示永不过期
autoDeletebooleanfalse过期后是否自动删除

请求示例

bash
curl -X POST "https://your.domain/api/manage/apiTokens" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
  "name": "上传专用",
  "permissions": ["upload"],
  "owner": "admin",
  "expiresAt": "2024-07-01T00:00:00.000Z",
  "autoDelete": true
}'

响应示例

json
{
  "id": "m1abc2def3",
  "name": "上传专用",
  "token": "imgbed_AbCdEfGhIjKlMnOpQrStUvWxYz123456",
  "owner": "admin",
  "permissions": ["upload"],
  "createdAt": "2024-01-01T00:00:00.000Z",
  "updatedAt": "2024-01-01T00:00:00.000Z",
  "expiresAt": "2024-07-01T00:00:00.000Z",
  "autoDelete": true
}

注意

创建成功后返回的 token 字段为完整 Token 值,请妥善保存,后续查询时仅显示前 15 位。

更新 Token

请求

  • 方法PUT

Body 参数

参数名类型必需默认值说明
tokenIdstring-Token ID
permissionsstring[]-新的权限列表
expiresAtstring | nullnull新的过期时间,null 表示永不过期
autoDeletebooleanfalse过期后是否自动删除

请求示例

bash
curl -X PUT "https://your.domain/api/manage/apiTokens" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
  "tokenId": "m1abc2def3",
  "permissions": ["upload", "delete"],
  "expiresAt": "2025-01-01T00:00:00.000Z",
  "autoDelete": false
}'

响应示例

json
{
  "success": true,
  "message": "Token 权限已更新",
  "token": {
    "id": "m1abc2def3",
    "name": "上传专用",
    "permissions": ["upload", "delete"],
    "expiresAt": "2025-01-01T00:00:00.000Z",
    "autoDelete": false
  }
}

删除 Token

请求

  • 方法DELETE

Query 参数

参数名类型必需说明
idstring要删除的 Token ID

请求示例

bash
curl -X DELETE "https://your.domain/api/manage/apiTokens?id=m1abc2def3" \
-H "Authorization: Bearer YOUR_API_TOKEN"

响应示例

json
{
  "success": true,
  "message": "Token 已删除"
}

Token 过期机制

过期验证

当使用 API Token 调用接口时,系统会自动检查 Token 是否已过期。若 Token 已过期,接口将返回:

json
{
  "valid": false,
  "error": "Token 已过期"
}

自动删除

当 Token 同时满足以下条件时,系统在列出 Token 时会自动将其从数据库中删除:

  1. expiresAt 不为 null(设置了过期时间)
  2. 当前时间晚于 expiresAt(已过期)
  3. autoDeletetrue(启用了自动删除)

基于 MIT 许可发布