3.7 KiB
3.7 KiB
用户授权管理相关接口
分组建议:放到“用户端授权码管理”(Customer User / CU)分组,统一前缀:
/api/cu
通用约定
- 鉴权:
Authorization: Bearer <token>(必填) - 多语言:
Accept-Languageheader 或?lang=zh-CN(可选) - 成功返回:
models.APIResponse - 失败返回:
models.ErrorResponse
参考接口(已实现)
为保持接口风格一致(路径、鉴权、返回结构),本设计参考并沿用以下已实现接口:
POST /api/cu/authorization-codes/{codeId}/share:用户分享授权码POST /api/cu/authorization-codes/product-activation-code:获取产品激活码GET /api/v1/authorization-codes:授权码列表(管理端,分页结构可复用)
状态约定
授权码状态沿用系统枚举:
normal:有效(当前时间未超过end_date且未锁定)expired:已过期(当前时间超过end_date)locked:已锁定(is_locked=true;是否过期由end_date决定)
前端展示“有效/已过期”时,可将
locked作为“有效但锁定”或单独状态展示(以 UI 为准)。
接口定义
1) 获取用户授权码列表(新增)
GET /api/cu/authorization-codes
Query 参数
page:页码,默认1page_size:每页数量,默认10,最大100status:状态筛选(可选)normal/expired/lockedsearch:授权码模糊匹配(可选,匹配code)
响应(200)
{
"code": "000000",
"message": "成功",
"data": {
"list": [
{
"id": "uuid-string",
"code": "LIC-COMP001-A7B9X2-C8F4",
"status": "normal",
"status_display": "正常",
"max_activations": 10,
"current_activations": 7,
"remaining_activations": 3,
"created_at": "2026-01-21T10:00:00Z",
"end_date": "2026-12-31T23:59:59Z"
}
],
"total": 1,
"page": 1,
"page_size": 10,
"total_pages": 1
},
"timestamp": "2026-01-21T10:05:00Z"
}
字段说明
max_activations:设备总数(可绑定/可激活上限)current_activations:已绑定设备数(已激活许可证数量)remaining_activations:剩余可绑定设备数(建议字段;也可由前端计算max_activations - current_activations)end_date:到期时间(授权结束时间)
错误码
100004:缺少认证信息900001:请求参数无效900004:服务器内部错误
2) 用户授权信息统计(新增)
GET /api/cu/authorization-codes/summary
响应(200)
{
"code": "000000",
"message": "成功",
"data": {
"total_count": 12,
"expired_count": 3,
"valid_count": 9,
"valid_max_activations_sum": 150
},
"timestamp": "2026-01-21T10:05:00Z"
}
字段说明
total_count:总授权码数量expired_count:已过期授权码数量valid_count:有效授权码数量(建议口径:status=normal,是否包含locked由产品定义;若包含请在实现中统一)valid_max_activations_sum:有效授权码的max_activations之和
错误码
100004:缺少认证信息900004:服务器内部错误
3) 用户分享授权码(已实现)
POST /api/cu/authorization-codes/{codeId}/share
说明:接口实现与 Swagger 注释已存在于
backend/internal/api/handlers/cu_authorization_handler.go。
4) 获取产品激活码(已实现)
POST /api/cu/authorization-codes/product-activation-code
说明:接口实现与 Swagger 注释已存在于
backend/internal/api/handlers/cu_authorization_handler.go。