Skip to Content
👋 欢迎使用 Build AI Template! 了解详情

认证授权 API

认证授权模块负责处理用户身份的所有方面,包括注册、登录、密码重置和会话管理。API 使用 JWT (JSON Web Token) 进行身份验证。

认证流程

步骤 1: 发送验证码

用户提供邮箱地址,系统向该邮箱发送一个有时效性的验证码。

POST /api/v1/auth/send_code

步骤 2: 注册或登录

用户提交邮箱、验证码以及其他必要信息(如密码)来完成注册或登录。

  • 验证码登录: POST /api/v1/auth/verify
  • 密码注册: POST /api/v1/auth/register
  • 密码登录: POST /api/v1/auth/login

步骤 3: 获取 Token

成功验证后,服务器会返回 access_tokenrefresh_token

步骤 4: 访问受保护资源

在请求需要认证的接口时,将 access_token 放入 Authorization 请求头中。

Authorization: Bearer <your_access_token>

步骤 5: 刷新 Token

access_token 过期后,使用 refresh_token 获取新的 access_token

POST /api/v1/auth/refresh_token

API 端点详情

发送验证码

POST /auth/send_code

向指定邮箱发送用于注册、登录或重置密码的验证码。

请求体:

{
"email": "user@example.com",
"purpose": "register", // 'register', 'login', or 'reset_password'
"lang": "zh"
}

响应 (200 OK):

{
"success": true,
"message": "验证码已发送"
}

验证码登录/验证

POST /auth/verify

验证邮箱和验证码,如果用户存在则完成登录并返回 Token。

请求体:

{
"email": "user@example.com",
"code": "123456",
"lang": "zh"
}

响应 (200 OK):

{
"access_token": "...",
"refresh_token": "...",
"token_type": "bearer"
}

用户注册

POST /auth/register

使用邮箱、用户名、密码和验证码创建新用户。成功后会自动登录。

请求体:

{
"email": "user@example.com",
"username": "newuser",
"password": "your_strong_password",
"code": "123456",
"lang": "zh"
}

响应 (200 OK):

{
"access_token": "...",
"refresh_token": "...",
"token_type": "bearer"
}

密码登录

POST /auth/login

使用邮箱和密码进行登录。

请求体:

{
"email": "user@example.com",
"password": "your_password",
"lang": "zh"
}

响应 (200 OK):

{
"access_token": "...",
"refresh_token": "...",
"token_type": "bearer"
}

获取当前用户信息

GET /auth/me

获取当前已登录用户的个人资料和会员信息。需要有效的 access_token

请求头:

{
"Authorization": "Bearer <your_access_token>"
}

响应 (200 OK):

{
"id": 1,
"username": "user",
"email": "user@example.com",
"user_type": "normal",
"membership_type": "free",
"last_login_at": "2024-01-01T00:00:00Z",
"created_at": "2024-01-01T00:00:00Z"
}

刷新 Token

POST /auth/refresh_token

使用 refresh_token 获取一个新的 access_token

请求体:

{
"refresh_token": "your_refresh_token",
"lang": "zh"
}

响应 (200 OK):

{
"access_token": "...",
"refresh_token": "...",
"token_type": "bearer"
}

重置密码

POST /auth/reset_password

在验证邮箱和验证码后,重置为新密码。

请求体:

{
"email": "user@example.com",
"code": "123456",
"new_password": "your_new_strong_password",
"lang": "zh"
}

响应 (200 OK):

{
"success": true,
"message": "密码重置成功"
}