Skip to main content

Client API 鉴权(JWT)

Client API 使用 JWT(JSON Web Token)进行身份验证。流程如下:
1

获取 Token

通过注册或登录接口获取 access_token
2

携带 Token 请求

在后续请求的 Authorization Header 中携带 Token。
# 示例:携带 Token 访问用户资料
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
     https://your-domain.com/api/user/profile

注册方式

PAI 支持两种注册方式:
第一步:发送验证码
POST /api/auth/email/send-code
Content-Type: application/json

{
  "email": "user@example.com",
  "purpose": "register"
}
第二步:验证码注册
POST /api/auth/register/code
Content-Type: application/json

{
  "email": "user@example.com",
  "password": "your_password",
  "confirm_password": "your_password",
  "code": "123456"
}
注册成功后返回:
{
  "access_token": "eyJhbGciOiJIUzI1NiIs...",
  "token_type": "bearer"
}

登录方式

POST /api/auth/login
Content-Type: application/json

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

密码重置

# 1. 发送重置验证码
POST /api/auth/email/send-code
{ "email": "user@example.com", "purpose": "reset_password" }

# 2. 提交新密码
POST /api/auth/password/reset
{
  "email": "user@example.com",
  "code": "123456",
  "new_password": "new_password",
  "confirm_password": "new_password"
}

Token 结构

JWT Payload 包含以下字段:
字段类型说明
substring用户 ID(字符串形式)
expnumber过期时间(Unix 时间戳)
srcstring来源平台(可选),如 webminiapp

Token 有效期

通过环境变量 JWT_EXP_MINUTES 配置,默认值为 10080 分钟(7 天)

签名算法

使用 JWT_SECRET 环境变量作为密钥,算法由 JWT_ALGORITHM 环境变量指定(默认 HS256)。
生产环境务必设置强随机的 JWT_SECRET,切勿使用默认值。

Admin API 鉴权

Admin API 使用静态 Token 进行鉴权,通过 X-Admin-Token Header 传递。
curl -H "X-Admin-Token: your-admin-token" \
     https://your-domain.com/api/admin/v1/dashboard

配置方式

在环境变量中设置:
ADMIN_TOKEN=your-secure-admin-token
如果 ADMIN_TOKEN 未配置,所有 Admin API 请求将返回 403 Forbidden

鉴权错误

状态码场景
401Token 缺失或不匹配
403服务端未配置 ADMIN_TOKEN