🔐 通用用户认证服务

多平台统一用户注册与登录服务 · JWT Token 认证

v1.0.0

📋 概述

基础 URL: https://your-domain.zeabur.app/api

统一登录: 所有App的账户互通,A平台注册的用户可以在B平台登录

平台追踪: 注册时记录 platform 字段,标识用户来源

🔑 认证方式

Bearer Token

需要认证的接口请在 HTTP Header 中携带 Token:

Authorization: Bearer <your-jwt-token>

Token 有效期:7天,过期后需要重新登录或刷新

📱 发送验证码

POST /api/auth/code/send 发送手机验证码

生成并返回6位数字验证码(开发模式,不接短信服务)。验证码5分钟内有效。

请求参数 (Body - JSON)

参数类型必填说明
phonestring手机号码,11位数字

请求示例

{
  "phone": "13800138000"
}

响应示例 (200)

{
  "success": true,
  "message": "验证码已发送",
  "data": {
    "phone": "13800138000",
    "code": "123456",
    "expiresIn": 300
  }
}
200 成功 400 手机号格式错误

📝 验证码注册

POST /api/auth/register/code 使用验证码注册新账户

使用手机号+验证码注册。注册时需指定 platform 标识来源App。

请求参数 (Body - JSON)

参数类型必填说明
phonestring手机号码
codestring验证码(先调用发送接口获取)
platformstring平台标识,如 "app1"、"app2"、"admin-web"

请求示例

{
  "phone": "13800138000",
  "code": "123456",
  "platform": "app1"
}

响应示例 (201)

{
  "success": true,
  "message": "注册成功",
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIs...",
    "expiresIn": 604800,
    "userId": "clxk...",
    "phone": "13800138000",
    "platform": "app1"
  }
}
201 注册成功 400 验证码错误或已过期 409 手机号已注册

🔒 密码注册

POST /api/auth/register/password 使用密码注册新账户

使用手机号+密码注册。密码会被bcrypt加密存储。

请求参数 (Body - JSON)

参数类型必填说明
phonestring手机号码
passwordstring密码,6-32位
platformstring平台标识

请求示例

{
  "phone": "13800138000",
  "password": "MyPass123!",
  "platform": "app2"
}

响应示例 (201)

{
  "success": true,
  "message": "注册成功",
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIs...",
    "expiresIn": 604800,
    "userId": "clxk...",
    "phone": "13800138000",
    "platform": "app2"
  }
}
201 注册成功 409 手机号已注册

🔓 验证码登录

POST /api/auth/login/code 使用验证码登录

使用手机号+验证码登录。所有平台统一验证,无需指定平台。

请求参数 (Body - JSON)

参数类型必填说明
phonestring手机号码
codestring验证码

请求示例

{
  "phone": "13800138000",
  "code": "123456"
}

响应示例 (200)

{
  "success": true,
  "message": "登录成功",
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIs...",
    "expiresIn": 604800,
    "userId": "clxk...",
    "phone": "13800138000",
    "platform": "app1"
  }
}
200 登录成功 400 手机号未注册或验证码错误

🔐 密码登录

POST /api/auth/login/password 使用密码登录

使用手机号+密码登录。所有平台统一验证,无需指定平台。

请求参数 (Body - JSON)

参数类型必填说明
phonestring手机号码
passwordstring密码

请求示例

{
  "phone": "13800138000",
  "password": "MyPass123!"
}

响应示例 (200)

{
  "success": true,
  "message": "登录成功",
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIs...",
    "expiresIn": 604800,
    "userId": "clxk...",
    "phone": "13800138000",
    "platform": "app1"
  }
}
200 登录成功 400 手机号未注册或未设置密码 401 密码错误

👤 获取用户资料

GET /api/auth/profile 获取当前用户资料(需Token)

获取当前登录用户的详细信息。需要在Header中携带Bearer Token。

请求头

参数说明
Authorization: Bearer <token>登录获取的 JWT Token

响应示例 (200)

{
  "success": true,
  "message": "操作成功",
  "data": {
    "id": "clxk...",
    "phone": "13800138000",
    "platform": "app1",
    "createdAt": "2024-01-01T00:00:00.000Z",
    "updatedAt": "2024-01-01T00:00:00.000Z"
  }
}
200 成功 401 未登录或Token无效

🔄 刷新Token

POST /api/auth/refresh 刷新Token续期(需Token)

使用当前有效的Token换取新Token,用于续期。需要在Header中携带Bearer Token。

请求头

参数说明
Authorization: Bearer <token>当前有效的 JWT Token

请求示例

// 无需请求体,直接从 Authorization Header 获取身份

响应示例 (200)

{
  "success": true,
  "message": "Token已刷新",
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIs...",
    "expiresIn": 604800,
    "userId": "clxk...",
    "phone": "13800138000",
    "platform": "app1"
  }
}
200 Token刷新成功 401 Token无效或已过期

⚠️ 错误码

所有接口统一返回格式:

{
  "success": false,
  "message": "错误描述",
  "statusCode": 400
}
HTTP状态码说明
200请求成功
201创建成功(注册)
400请求参数错误 / 验证码错误 / 手机号未注册
401未授权 / Token无效 / 密码错误
409冲突(手机号已注册)
429请求频率过高
500服务器内部错误