docs(api): 同步 api.md 与后端实际行为

修正认证方式为 Bearer Token(非 Set-Cookie),修正端点路径
为 /auth/*,修正注册字段约束(email 可选、password 6-64、
username 3-32),补充登录响应完整字段。
This commit is contained in:
2026-05-24 21:27:26 +08:00
parent e880a80c51
commit bc9c511ac3
+22 -34
View File
@@ -8,14 +8,7 @@
## 认证
除健康检查和注册登录外,所有接口需通过 httpOnly Cookie 携带 JWT。登录/注册成功后,服务端通过 `Set-Cookie` 响应头写入 Token,后续请求自动携带。
Cookie 属性:
- `Name`: `token`
- `HttpOnly`: true
- `SameSite`: Lax
- `Path`: `/`
- `MaxAge`: 由 `GEN2D_JWT_EXPIRE` 控制(默认 7200 秒)
除健康检查和注册登录外,所有接口需认证。登录成功后,Token 在响应体 `data.token` 字段中返回,客户端需自行存储(如 localStorage)并通过 `Authorization: Bearer <token>` 请求头携带。
Token 过期或无效时返回:
@@ -66,7 +59,7 @@ Token 过期或无效时返回:
| [ ] | GET | `/api/v1/auth/me` | 获取当前用户信息 |
| [ ] | PUT | `/api/v1/auth/password` | 修改密码 |
### POST /api/v1/auth/register
### POST /auth/register
```json
{
@@ -78,20 +71,19 @@ Token 过期或无效时返回:
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `username` | string | 是 | 3-64 字符,字母数字下划线 |
| `email` | string | 是 | 邮箱地址 |
| `password` | string | 是 | 8-128 字符 |
| `username` | string | 是 | 3-32 字符 |
| `email` | string | 否 | 邮箱地址 |
| `password` | string | 是 | 6-64 字符 |
响应(Token 通过 `Set-Cookie` 响应头写入,不在 body 中返回):
响应(HTTP 状态码 201):
```json
{
"code": 0,
"message": "ok",
"data": {
"id": "user_a1B2c3D4",
"username": "player1",
"email": "player1@example.com"
"id": 1,
"username": "player1"
}
}
```
@@ -100,13 +92,12 @@ Token 过期或无效时返回:
| 场景 | code | message |
|------|------|---------|
| 用户名格式不合法(非 3-64 字符或含特殊字符) | 400 | 用户名格式不合法 |
| 密码长度不足 | 400 | 密码长度不能少于 8 位 |
| 邮箱格式不合法 | 400 | 邮箱格式不正确 |
| 用户名格式不合法(非 3-32 字符) | 400 | 参数错误 |
| 密码长度不足 | 400 | 参数错误 |
| 邮箱格式不合法 | 400 | 参数错误 |
| 用户名已存在 | 409 | 用户名已被注册 |
| 邮箱已存在 | 409 | 邮箱已被注册 |
### POST /api/v1/auth/login
### POST /auth/login
```json
{
@@ -115,25 +106,22 @@ Token 过期或无效时返回:
}
```
支持 `username` 或 `email` 登录:
```json
{
"email": "player1@example.com",
"password": "s3cretP@ss"
}
```
响应(Token 通过 `Set-Cookie` 响应头写入,不在 body 中返回):
响应(Token 在 body 中返回):
```json
{
"code": 0,
"message": "ok",
"data": {
"id": "user_a1B2c3D4",
"username": "player1",
"email": "player1@example.com"
"token": "eyJhbGciOiJIUzI1NiIs...",
"expiresIn": 7200,
"user": {
"id": 1,
"username": "player1",
"email": "player1@example.com",
"createdAt": "2026-05-24T10:00:00Z",
"updatedAt": "2026-05-24T10:00:00Z"
}
}
}
```