docs(api): 同步 api.md 与后端实际行为
修正认证方式为 Bearer Token(非 Set-Cookie),修正端点路径 为 /auth/*,修正注册字段约束(email 可选、password 6-64、 username 3-32),补充登录响应完整字段。
This commit is contained in:
+22
-34
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user