用戶中心

統一賬號中心(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 聚合服務