加载中…
会员 user

模块说明

user 是会员体系总入口,覆盖:注册 / 账号密码登录 / 手机验证码登录 / 登出 / 登录态检查、找回密码(邮件)、资料维护(编辑、改密、头像、通用文件上传)、第三方账号(SNS)、省市区数据、联系人地址簿、微信小程序专用能力(手机号获取、微信登录、微信支付)与工作端会员列表。

鉴权级别:模块默认必须登录;注册/登录/找回密码/登录态检查等少数动作公开;会员中心首页可选登录;工作端必须员工身份。

接口一览

注册与登录

方法 URL 鉴权 说明
GET /api/user 可选 会员中心首页
GET /api/user/register 公开 注册表单数据
POST /api/user/register_post 公开 注册提交(成功后自动登录)
POST /api/user/login_post 公开 账号密码登录
POST /api/user/login_phone_post 公开 手机验证码登录
POST /api/user/logout 必须 退出登录(吊销当前 token)
POST /api/user/check_login_state 公开 登录态检查
GET /api/user/password_reset 公开 找回密码表单
POST /api/user/password_reset_post 公开 找回密码提交(发邮件)

资料维护

方法 URL 鉴权 说明
GET /api/user/edit 必须 资料编辑表单
POST /api/user/edit_post 必须 保存资料
GET /api/user/password 必须 修改密码表单
POST /api/user/password_post 必须 修改密码
POST /api/user/upload_avatar 必须 上传头像(multipart)
POST /api/user/filebox 必须 通用文件上传(multipart)
POST /api/user/filedel 必须 删除已上传文件

第三方账号与地区

方法 URL 鉴权 说明
POST /api/user/sns 必须 第三方账号管理(查看/解绑)
POST /api/user/sns_link 公开 第三方登录引导页
POST /api/user/area 必须 省市区数据

联系人地址簿

方法 URL 鉴权 说明
GET /api/user/contact 必须 地址簿列表
GET /api/user/contact/create 必须 新增表单
POST /api/user/contact/store 必须 新增提交
GET /api/user/contact/edit 必须 编辑表单
POST /api/user/contact/update 必须 编辑提交
POST /api/user/contact/destroy 必须 删除地址
POST /api/user/contact/set 必须 设为默认地址
POST /api/user/contact/list_json 必须 联系地址 JSON 列表
POST /api/user/contact/info 必须 单个联系人信息

微信能力(小程序专用)

方法 URL 鉴权 说明
GET /api/user/weixin/get_phone 公开 微信手机号解密(小程序)
GET /api/user/weixin/login 公开 微信小程序登录
POST /api/user/weixin/pay 必须 微信小程序支付

工作端(work_required)

方法 URL 鉴权 说明
GET /api/user/work 员工 工作端会员列表

登录与注册

账号密码登录 POST /api/user/login_post

参数 必填 说明
username 是 用户名(邮箱或手机号)
password 是 密码

成功响应(注册提交同结构):

{
  "code": "OK",
  "message": "",
  "data": {
    "user": { "user_id": 3, "token": "64位hex令牌", "...": "会员数据" },
    "dou": { "auth": { "is_work": false } }
  },
  "errors": {},
  "request_id": "9f2a5c8e1b3d7f40"
}
  • data.user.token 即后续 Authorization: Bearer <token> 凭证;
  • 凭据错误/账号锁定等 → 422,errors 含字段级原因。

手机验证码登录 POST /api/user/login_phone_post

参数 必填 说明
mobile 是 手机号
verification 是 用户输入的验证码
verification_data 是 captcha/verification 返回的验证数据(JSON 字符串)
promotion_user_sn 否 推广人编号

限流 5 次/60 秒(超限 429)。

注册 GET /api/user/register + POST /api/user/register_post

表单数据返回:captcha_token、storage_captcha_token(验证码流程)、promotion_user_sn、sns_token、login_mode、mail_username、sms_accessKeyId(决定展示邮箱或短信验证区)。

提交字段:email 或 mobile(二选一)、password + password_confirmation(confirmed 校验)、verification + verification_data(站点开启验证时)、promotion_user_sn(可选)、sns(可选,第三方绑定 JSON)。成功后自动登录(同登录响应结构,另带 dou.auth.is_work)。

找回密码 POST /api/user/password_reset_post

参数 email;向该邮箱发送重置链接。

场景 响应
邮箱不存在 404 NOT_FOUND(errors.email)
邮件发送失败 500 SERVER_ERROR
成功 200,message 提示邮件已发送

登录态与登出

  • POST /api/user/check_login_state:检查 Bearer token 是否有效;返回 login_state(有效 success,无效 fail);公开接口;
  • POST /api/user/logout:吊销当前 token(需登录),返回空数据。

资料维护

编辑资料 GET /api/user/edit + POST /api/user/edit_post

编辑表单返回 title + user_info(含站点自定义字段 defined)。

保存字段:nickname、contact、phone(必填,非法字符校验)、sex、defined(自定义字段,\r\n 自动转逗号);site.language=en_us 时改采 first_name / last_name / country / province。昵称重复 → 422(errors.nickname)。

修改密码 POST /api/user/password_post

参数 必填 说明
old_password 是 原密码
password 是 新密码
password_confirmation 是 确认新密码

成功返回 data.relogin=true(提示客户端重新登录);旧密码错误 → 422(errors)。

头像与通用文件上传

  • 上传头像 POST /api/user/upload_avatar:multipart,文件字段 avatar;成功返回 file_url(自动压缩到宽 200);

  • 通用文件上传 POST /api/user/filebox(multipart):

    参数 必填 说明
    module 是 归属模块(如 share、aftersale、health)
    type 是 业务类型
    item_id 二选一 业务主键(编辑场景);与 draft_token 二者其一
    draft_token 二选一 草稿令牌(创建场景)
    folder 否 yes 时按日期分目录
    img_width 否 压缩宽度(默认 site.img_width)
    boxfield 是 文件字段(type=content 时支持多文件)

    返回:普通单图 img_list(owned 模式最多保留 3 张);type=content 返回 html 片段;

  • 删除文件 POST /api/user/filedel:参数 number;返回删除后的 img_list。

第三方账号与地区

  • POST /api/user/sns:参数 remove(要解绑的平台 slug);返回 title、plugin_list(已绑定平台列表)、成功解绑时 remove=true;
  • POST /api/user/sns_link:返回引导页 title(公开);
  • POST /api/user/area:参数 type(init/province/city/district,默认 province)+ id/parent/current;init 返回 contact(带地区回显的联系人),其余返回 area_list;地区模块未启用时返回空对象。

联系人地址簿

  • 列表 GET /api/user/contact:参数 page;返回 contact_list、pager;
  • 新增 POST /api/user/contact/store:name、phone、address 必填(中文站点 phone 走手机号校验;开启地区功能时 province/city 必填);成功返回 contact_id;
  • 编辑 GET /api/user/contact/edit?id= + POST /api/user/contact/update:字段同新增;成功返回 contact_id;
  • 删除 POST /api/user/contact/destroy?id=:失败 422;
  • 设默认 POST /api/user/contact/set?id=:成功提示;
  • JSON 列表 POST /api/user/contact/list_json:参数 contact_id(当前选中,可选);返回 contact_list(结算选择地址场景);
  • 联系人信息 POST /api/user/contact/info:参数 contact_id;返回 contact。

微信能力(小程序专用)

以下接口为微信小程序生态专用,依赖小程序 AppID/密钥配置;通用客户端(Vue 等)不适用,PC 端微信登录走独立插件与 OAuth 流程。

  • 获取手机号 GET /api/user/weixin/get_phone?code=:服务端解密返回 phone;

  • 微信登录 GET /api/user/weixin/login:

    参数 必填 说明
    code 是 wx.login 获取的临时凭证
    act 否 preload 时仅探测绑定状态(返回 phone_exist: yes/no),默认正常登录
    phone 否 手机号(用于关联既有账号)
    promotion_user_sn 否 推广人编号(自动建号时登记分销关系)

    成功返回 user.user_id + user.token(+dou.auth.is_work);

  • 微信支付 POST /api/user/weixin/pay:参数 order_sn;仅 pending 状态订单可发起;返回微信 JSAPI 支付参数;状态不符 → 422。

工作端会员列表 GET /api/user/work

员工权限(user 模块);参数 page;每页数量取站点配置 pagination.service(默认 10)。返回 user_list,每项含:user_id、level_name、vip、user(格式化会员数据)、mobile、email、user_sn、contact、phone、point、money_total、sex、login_count、last_login、created_at。

注意事项

  • 验证码体系:注册与手机登录依赖 captcha 模块两段式流程(captcha/token 拿令牌 → captcha/verification 发码并拿 verification_data);详见「鉴权与会话」篇;
  • 限流:登录/注册/找回密码/验证码均有限流,超限 429 + Retry-After;
  • 文件上传三形态:draft_token(创建场景草稿)/ item_id(编辑场景 owned,最多 3 张)/ type=content(多文件富文本 HTML);
  • 修改密码成功后 token 仍有效但业务建议重新登录(relogin 提示);
  • dou.auth 布尔组(is_login/is_vip/is_work/is_distribution)是客户端权限态渲染的推荐依据。
添加日期:2026-10-06