# 用户认证API文档 本文档详细说明了系统提供的用户认证相关API,包括注册、登录、密码重置等功能。 ## 基础URL 所有用户认证相关的API都在以下基础路径下: ``` /api/user/auth/ ``` ## API概览 | 接口路径 | 方法 | 描述 | |---------|------|------| | `/api/user/auth/register/` | POST | 用户名注册 | | `/api/user/auth/username/login/` | POST | 用户名密码登录 | | `/api/user/auth/email/login/` | POST | 邮箱密码登录 | | `/api/user/auth/phone/login/` | POST | 手机验证码登录 | | `/api/user/auth/phone/verify/` | POST | 发送手机验证码 | | `/api/user/auth/login/` | POST | 标准登录接口(dj_rest_auth) | | `/api/user/auth/logout/` | POST | 登出 | | `/api/user/auth/password/reset/` | POST | 密码重置 | | `/api/user/auth/password/reset/confirm/` | POST | 密码重置确认 | | `/api/user/auth/user/` | GET | 获取当前用户信息 | | `/api/user/info/` | GET | 获取当前用户详细信息 | ## 详细API说明 ### 用户名注册 ``` POST /api/user/auth/register/ ``` 使用用户名和密码创建新用户账号。 **请求参数:** | 参数名 | 类型 | 必填 | 描述 | |-------|-----|------|-----| | username | string | 是 | 用户名 | | password1 | string | 是 | 密码 | | password2 | string | 是 | 确认密码 | | email | string | 否 | 邮箱 | | phone_number | string | 否 | 手机号码 | **响应示例:** ```json { "status": "success", "code": 200, "message": "User registered successfully" } ``` ### 用户名密码登录 ``` POST /api/user/auth/username/login/ ``` 使用用户名和密码进行登录。 **请求参数:** | 参数名 | 类型 | 必填 | 描述 | |-------|-----|------|-----| | username | string | 是 | 用户名 | | password | string | 是 | 密码 | **响应示例:** ```json { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." } ``` ### 邮箱密码登录 ``` POST /api/user/auth/email/login/ ``` 使用邮箱和密码进行登录。 **请求参数:** | 参数名 | 类型 | 必填 | 描述 | |-------|-----|------|-----| | email | string | 是 | 邮箱 | | password | string | 是 | 密码 | **响应示例:** ```json { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." } ``` ### 手机验证码登录 ``` POST /api/user/auth/phone/login/ ``` 使用手机号和验证码进行登录。 **请求参数:** | 参数名 | 类型 | 必填 | 描述 | |-------|-----|------|-----| | phone_number | string | 是 | 手机号码 | | code | string | 是 | 验证码 | **响应示例:** ```json { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." } ``` ### 发送手机验证码 ``` POST /api/user/auth/phone/verify/ ``` 向指定手机号发送验证码。 **请求参数:** | 参数名 | 类型 | 必填 | 描述 | |-------|-----|------|-----| | phone_number | string | 是 | 手机号码 | **响应示例:** ```json { "message": "Verification code sent." } ``` ### 获取用户信息(标准) ``` GET /api/user/auth/user/ ``` 获取当前登录用户的基本信息。 **安全说明:** - 不返回密码和敏感权限信息 - 只有经过认证的用户可以访问 **请求头:** 需要包含认证令牌: ``` Authorization: Bearer {token} ``` **响应示例:** ```json { "id": 1, "username": "example_user", "email": "user@example.com", "phone_number": "13800138000", "first_name": "", "last_name": "" } ``` ### 获取用户详细信息 ``` GET /api/user/info/ ``` 返回当前登录用户的详细信息。 **安全说明:** - 不返回密码和敏感权限信息 - 只有经过认证的用户可以访问 **请求头:** 需要包含认证令牌: ``` Authorization: Bearer {token} ``` **响应示例:** ```json { "status": "success", "code": 200, "data": { "id": 1, "username": "example_user", "email": "user@example.com", "phone_number": "13800138000", "date_joined": "2023-01-01T00:00:00Z", "last_login": "2023-01-02T10:30:00Z", "first_name": "", "last_name": "", "is_active": true } } ``` ## 错误响应 所有API可能返回以下错误: **400 Bad Request** ```json { "error": "具体错误信息" } ``` **401 Unauthorized** ```json { "detail": "认证失败信息" } ``` **403 Forbidden** ```json { "detail": "权限错误信息" } ``` ## 认证方式 系统支持以下认证方式: 1. **Token认证**:在请求头中添加 `Authorization: Bearer {token}` 2. **Session认证**:适用于浏览器访问