Skip to content

团队管理 API

团队管理相关接口,包括邀请链接、API Key 管理和团队密钥管理。

路由前缀/teams

源码apps/backend/src/routes/teams.ts


认证

所有接口需要 JWT 认证:

Authorization: Bearer <JWT>

端点

1. 生成团队邀请链接

POST /teams/generate-invite-link

生成一个团队邀请 JWT Token,有效期 7 天。仅团队 owner 可操作。

请求体:

字段类型必填说明
teamIdstring团队 ID

响应 200 OK

json
{
  "success": true,
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIs...",
    "expiresAt": "2026-03-14T10:00:00.000Z"
  }
}

错误码:

HTTP错误说明
400teamId is required未提供 teamId
401Unauthorized未认证
403Only team owner can generate invite links非团队 owner
404Team not found团队不存在
500Internal server error服务端错误

2. 接受团队邀请

POST /teams/accept-invite

使用邀请 Token 加入团队。如果用户已是成员,返回 alreadyMember: true(幂等)。

请求体:

字段类型必填说明
tokenstring邀请 JWT Token

响应 200 OK

json
{
  "success": true,
  "data": {
    "team": {
      "id": "uuid",
      "slug": "my-team",
      "name": "My Team"
    },
    "alreadyMember": false
  }
}

错误码:

HTTP错误说明
400token is required未提供 token
400Invalid or expired invite tokenToken 无效或过期
401Unauthorized未认证
404Team not found团队不存在
500Internal server error服务端错误

3. 创建团队 API Key

POST /teams/:teamId/api-keys

为团队创建 API Key。密钥明文仅在创建时返回一次,数据库只存储哈希值。仅团队 owner 可操作。

路径参数:

参数说明
teamId团队 ID

请求体:

字段类型必填说明
namestringKey 名称
descriptionstring描述
limitCreditsnumber | null积分限额

响应 201 Created

json
{
  "success": true,
  "data": {
    "id": "uuid",
    "name": "My API Key",
    "prefix": "wn-",
    "suffix": "abc...defg",
    "apiKey": "wn-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "createdAt": "2026-03-07T10:00:00.000Z"
  },
  "message": "请立即保存此 API Key,它不会再次显示!"
}

注意apiKey 字段包含完整明文密钥,仅在此次响应中返回,请立即保存。

错误码:

HTTP错误说明
400name is required未提供 name
401Unauthorized未认证
403Only team owner can create API keys非团队 owner
404Team not found团队不存在
500Internal server error服务端错误

4. 列出团队密钥

GET /teams/:teamId/secrets

获取团队的所有密钥列表。团队成员(owner 和 member)均可查看。

路径参数:

参数说明
teamId团队 ID

响应 200 OK

json
{
  "success": true,
  "data": [
    {
      "id": "uuid",
      "key": "MY_SECRET_KEY",
      "description": "第三方 API 密钥",
      "created_at": "2026-03-07T10:00:00.000Z",
      "updated_at": "2026-03-07T10:00:00.000Z"
    }
  ]
}

错误码:

HTTP错误说明
401Unauthorized未认证
403Permission denied非团队成员
500Internal server error服务端错误

5. 创建团队密钥

POST /teams/:teamId/secrets

创建团队密钥。仅团队 owner 可操作。

路径参数:

参数说明
teamId团队 ID

请求体:

字段类型必填说明
keystring密钥名(大写字母开头,仅大写字母/数字/下划线,最长 64 字符)
valuestring密钥值
descriptionstring描述

key 格式要求:匹配 ^[A-Z][A-Z0-9_]*$,最大 64 字符。

响应 201 Created

json
{
  "success": true,
  "data": {
    "id": "uuid",
    "key": "MY_SECRET_KEY",
    "description": "描述",
    "created_at": "2026-03-07T10:00:00.000Z"
  }
}

错误码:

HTTP错误说明
400key and value are required缺少必填字段
400key must match ...key 格式不合法
401Unauthorized未认证
403Only team owner can create secrets非团队 owner
409Key already exists in this teamkey 重复
500Internal server error服务端错误

6. 更新团队密钥

PUT /teams/:teamId/secrets/:id

更新团队密钥的值或描述。仅团队 owner 可操作。

路径参数:

参数说明
teamId团队 ID
id密钥 ID

请求体:

字段类型必填说明
valuestring新密钥值
descriptionstring新描述

valuedescription 至少提供一个。

响应 200 OK

json
{
  "success": true,
  "data": {
    "id": "uuid",
    "key": "MY_SECRET_KEY",
    "description": "新描述",
    "updated_at": "2026-03-07T12:00:00.000Z"
  }
}

错误码:

HTTP错误说明
400At least one of value or description is required未提供任何更新字段
401Unauthorized未认证
403Only team owner can update secrets非团队 owner
500Internal server error服务端错误

7. 删除团队密钥

DELETE /teams/:teamId/secrets/:id

删除团队密钥。仅团队 owner 可操作。

路径参数:

参数说明
teamId团队 ID
id密钥 ID

响应 200 OK

json
{
  "success": true
}

错误码:

HTTP错误说明
401Unauthorized未认证
403Only team owner can delete secrets非团队 owner
500Internal server error服务端错误

AI Workflow Editor