用户中心

统一账号中心(UAC):全局用户池,多方式注册/登录、Token 签发与验证、两步注册邮箱/手机号校验。

/api/user_center/

服务说明

用户中心是一套统一账号系统(UAC):所有接入项目共用一个全局用户池,用户在一个项目下注册的账号,在其它项目下同样可以登录,不必每个项目各建一套账号体系。

登录态用 Token 承载,Token 绑定签发它的接入项目。注册仅支持邮箱或手机号,且为两步流程——先提交凭证发验证码,校验通过后才真正创建账号,可有效防止恶意批量注册;忘记密码同样走「先发码、再校验改密」,重置成功后会作废该用户的全部 Token。

除「可用注册/登录方式」与邮箱激活链接(公开 GET)外,其余接口均需项目签名。客户端建议先查注册/登录方式接口,再按返回结果渲染表单,不要在前端写死支持方式。

响应格式

所有接口返回同一个 JSON 信封,业务数据都在 data 里:

{
  "code": 10000,
  "msg": "成功",
  "data": { ... }
}
  • code:业务状态码,10000 表示成功;其余为各类错误,完整清单见「错误码」页。
  • msg:给人看的提示文案,可直接展示给终端用户,但不要用它做逻辑判断。
  • data:业务数据;出错时通常为 null。各接口 data 的具体字段见该接口的「响应说明」。

判断成功与否请看 code,不要依赖 HTTP 状态码。 查看完整错误码

用户账号体系

统一账号池(Token 绑定接入项目) 需签名

除 methods 与邮箱激活链接(GET) 外均需项目签名。邮箱/手机号两步注册流程:先 register(仅暂存+发验证码),再调 verify/email 或 verify/phone 校验通过后才创建账号。忘记密码流程:先调 password/send 发码,再调 password/reset 校验通过后改密(并作废该用户全部 Token)。

GET /api/user_center/users/methods 累计调用 0 次

可用注册/登录方式

返回后台启用的注册/登录方式(公开,免签名)。

  • 返回 data={methods:[email,phone], username:false};客户端先查此接口再渲染表单,username=false 表示"用户名+密码注册"已停用。
响应说明 外层统一格式
字段 类型 说明
methods array 后台启用的注册/登录方式列表
methods[] string 取值 email / phone
username bool 用户名+密码注册是否可用(恒为 false)
返回示例
{
  "methods": ["email", "phone"],
  "username": false
}
POST /api/user_center/users/register 累计调用 0 次

注册

注册(只支持邮箱 / 手机号):提交邮箱或手机号 + 密码走两步注册,先发验证码。

选填:仅用于展示,不作为注册凭证

提供 email → 两步注册第一步,需再验证邮箱

提供 phone → 两步注册第一步,需再验证手机号

  • email / phone 至少提供一个;两步注册时 data.need_verify=true,需再调 verify/email 或 verify/phone 校验通过后才创建账号。
  • 只提供 username(即"用户名+密码注册")已停用,返回 30001 业务规则限制。
响应说明 外层统一格式
字段 类型 说明
username string 选填:注册时提交的展示名,原样回带
email string 本次注册绑定的邮箱(提交邮箱时返回)
verify_email_sent bool 验证邮件是否发送成功
phone string 本次注册绑定的手机号(提交手机号时返回)
verify_phone_sent bool 注册短信是否发送成功
need_verify bool 恒为 true:需完成验证后才发放账号
返回示例
{
  "email": "user@example.com",
  "verify_email_sent": true,
  "need_verify": true
}
POST /api/user_center/users/login/send 累计调用 0 次

发送登录验证码

邮箱/手机号验证码登录第一步:校验已注册后发码(60 秒冷却)。

响应说明 外层统一格式

成功时 data 为 null:接口只下发验证码,不返回业务数据。

POST /api/user_center/users/login 累计调用 0 次

登录

登录:账号/邮箱/手机号+密码;或邮箱/手机号+验证码。成功返回绑定项目的 Token。

账号+密码登录:系统发放的账号

邮箱+密码登录,或邮箱+code 验证码登录

手机号+密码登录,或手机号+code 验证码登录

不带 code 时必填:account/email/phone 任一标识 + 密码

带 code 即走邮箱/手机号验证码登录(免密码)

  • 密码登录的标识三选一:account / email / phone(邮箱与手机号需已注册)。
  • 同一项目+凭证+IP 连续失败 5 次锁定 15 分钟(返回 20040)。
响应说明 外层统一格式
字段 类型 说明
user_id string 用户唯一 ID(UUID)
account string 系统分配的账号(6-12 位数字)
username string 用户名(可空)
token string 登录 Token,绑定本项目
expire_time string Token 过期时间(Y-m-d H:M:S)
email string 已绑定邮箱(未绑定时不返回)
phone string 已绑定手机号(未绑定时不返回)
返回示例
{
  "user_id": "0f8a1c2d-3e4b-5a6c-7d8e-9f0a1b2c3d4e",
  "account": "123456",
  "username": "demo",
  "token": "9f2c1a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f",
  "expire_time": "2026-10-09 12:00:00",
  "email": "user@example.com"
}
POST /api/user_center/users/password/send 累计调用 0 次

发送重置密码验证码

忘记密码第一步:校验邮箱/手机号已注册后发码(60 秒冷却)。

  • 仅支持已绑定邮箱/手机号的账号;纯用户名账号没有可验证通道,无法自助重置。
响应说明 外层统一格式

成功时 data 为 null:接口只下发验证码,不返回业务数据。

POST /api/user_center/users/password/reset 累计调用 0 次

重置密码

忘记密码第二步:校验验证码通过后设置新密码。

8-64 位,需同时包含字母和数字

  • 重置成功会作废该用户全部已签发 Token(所有已登录设备需重新登录)。
响应说明 外层统一格式
字段 类型 说明
user_id string 用户唯一 ID(UUID)
account string 系统分配的账号(6-12 位数字)
username string 用户名(可空)
email string 已绑定邮箱(未绑定时不返回)
phone string 已绑定手机号(未绑定时不返回)
返回示例
{
  "user_id": "0f8a1c2d-3e4b-5a6c-7d8e-9f0a1b2c3d4e",
  "account": "123456",
  "username": "demo",
  "email": "user@example.com"
}
POST /api/user_center/users/verify 累计调用 0 次

验证 Token

供子项目确认用户身份:校验 token 有效性。

必填:用户在该项目下持有的登录 Token(login 成功返回)

  • 成功返回 data={valid, user_id, account, username}。
响应说明 外层统一格式
字段 类型 说明
valid bool Token 是否有效(成功恒为 true)
user_id string 用户唯一 ID(UUID)
account string 系统分配的账号(6-12 位数字)
username string 用户名(可空)
email string 已绑定邮箱(未绑定时不返回)
email_verified bool 邮箱是否已验证
phone string 已绑定手机号(未绑定时不返回)
phone_verified bool 手机号是否已验证
返回示例
{
  "valid": true,
  "user_id": "0f8a1c2d-3e4b-5a6c-7d8e-9f0a1b2c3d4e",
  "account": "123456",
  "username": "demo",
  "email": "user@example.com",
  "email_verified": true
}
POST /api/user_center/users/logout 累计调用 0 次

退出登录

删除当前项目下该 Token。

必填:用户在该项目下持有的登录 Token(login 成功返回)

响应说明 外层统一格式

成功时 data 为 null:接口只返回操作结果。

GET /api/user_center/users/info 累计调用 0 次

用户信息

按 token 查询用户信息。

必填:用户在该项目下持有的登录 Token(login 成功返回)

响应说明 外层统一格式
字段 类型 说明
user_id string 用户唯一 ID(UUID)
account string 系统分配的账号(6-12 位数字)
username string 用户名(可空)
expire_time string Token 过期时间(Y-m-d H:M:S)
email string 已绑定邮箱(未绑定时不返回)
email_verified bool 邮箱是否已验证
phone string 已绑定手机号(未绑定时不返回)
phone_verified bool 手机号是否已验证
返回示例
{
  "user_id": "0f8a1c2d-3e4b-5a6c-7d8e-9f0a1b2c3d4e",
  "account": "123456",
  "username": "demo",
  "expire_time": "2026-10-09 12:00:00",
  "email": "user@example.com",
  "email_verified": true
}
POST /api/user_center/users/verify/email 累计调用 0 次

邮箱两步验证(验证码)

邮箱验证码校验,通过后创建账号并发放。

响应说明 外层统一格式
字段 类型 说明
user_id string 用户唯一 ID(UUID)
account string 系统分配的账号(6-12 位数字)
username string 用户名(可空)
email string 本次注册绑定的邮箱
email_verified bool 邮箱是否已验证
返回示例
{
  "user_id": "0f8a1c2d-3e4b-5a6c-7d8e-9f0a1b2c3d4e",
  "account": "123456",
  "username": "demo",
  "email": "user@example.com",
  "email_verified": true
}
POST /api/user_center/users/verify/email/resend 累计调用 0 次

重发验证邮件

重发两步注册验证邮件(60 秒冷却)。

响应说明 外层统一格式

成功时 data 为 null:接口只重发验证邮件。

POST /api/user_center/users/verify/phone 累计调用 0 次

手机号两步验证

手机验证码校验,通过后创建账号并发放。

响应说明 外层统一格式
字段 类型 说明
user_id string 用户唯一 ID(UUID)
account string 系统分配的账号(6-12 位数字)
username string 用户名(可空)
phone string 本次注册绑定的手机号
phone_verified bool 手机号是否已验证
返回示例
{
  "user_id": "0f8a1c2d-3e4b-5a6c-7d8e-9f0a1b2c3d4e",
  "account": "123456",
  "username": "demo",
  "phone": "13800138000",
  "phone_verified": true
}
POST /api/user_center/users/verify/phone/send 累计调用 0 次

发送注册短信

发送两步注册的手机短信验证码(60 秒冷却)。

响应说明 外层统一格式

成功时 data 为 null:接口只重发注册短信。

小影API · 通用 API 聚合服务