5.2 手机号注册【参数校验通过,待业务联调】

POST /tieup/api/v1/auth/register

请求体:

{
  "phone": "13800000000",
  "sms_code": "123456",
  "password": "password"
}

请求参数:

参数 类型 必填 说明
phone string 中国大陆 11 位手机号
sms_code string 6 位数字验证码
password string 6 到 64 位密码

响应字段:

字段 类型 说明
access_token string APP Access Token
refresh_token string APP Refresh Token
expires_in integer Access Token 有效时长,单位秒
user object 当前用户完整资料对象;密码登录、验证码登录、刷新 Token 和切换使用端复用相同结构
user.id integer 用户 ID
user.rong_user_id string 当前使用端对应的融云用户 ID
user.group_code string 应用分组编码
user.channel_code string 注册渠道编码
user.phone string 手机号
user.nickname string 用户昵称
user.avatar string 头像 URL,未上传时为空字符串
user.profile_completion_step integer 当前资料完善步骤:0=未上传头像,1=已上传头像但核心资料未完善,2=核心资料已完善
user.gender integer 性别:0=未知,1=男,2=女
user.age integer/null 年龄
user.province_code / user.province_name string/null 省级行政区编码和名称
user.city_code / user.city_name string/null 市级行政区编码和名称
user.district_code / user.district_name string/null 区县行政区编码和名称
user.signature string/null 个性签名
user.status integer 账号状态:1=正常,2=禁用,3=最终注销,4=注销中
user.is_idol integer 是否开通艺人身份:1=是,2=否
user.candy_balance string 糖果余额,两位小数字符串
user.online_status integer 在线状态:0=离线,1=在线
user.current_identity string 当前使用端:fan=粉丝端,artist=艺人端
user.available_identities array 当前账号可切换的使用端列表

响应示例:

{
  "code": 200,
  "message": "成功",
  "data": {
    "access_token": "app_access_token",
    "refresh_token": "app_refresh_token",
    "expires_in": 7200,
    "user": {
      "id": 10001,
      "rong_user_id": "tieup_fan_10001",
      "group_code": "tieup",
      "channel_code": "appstore",
      "phone": "13800138000",
      "nickname": "用户8000",
      "avatar": "",
      "profile_completion_step": 0,
      "gender": 0,
      "age": null,
      "province_code": null,
      "province_name": null,
      "city_code": null,
      "city_name": null,
      "district_code": null,
      "district_name": null,
      "signature": null,
      "status": 1,
      "is_idol": 2,
      "candy_balance": "0.00",
      "online_status": 0,
      "current_identity": "fan",
      "available_identities": [
        "fan"
      ]
    }
  }
}

业务规则:

  • 服务端根据 X-App-Channel 解析 channel_codegroup_code
  • 新账号写入 tieup_user,默认 status = 1is_idol = 2
  • 手机号唯一性以 channel_code + phone 为准。
  • 短信验证码、发送冷却、每日次数和场景滑动窗口均按 channel_code + phone + scene 隔离;同一手机号在不同渠道注册或找回密码不会互相覆盖验证码。
  • 注册写操作使用数据库事务,数据库唯一索引作为并发重复注册兜底。
  • 旧环境需手动导入 databases/selfbuilt/updates/20260611_tieup_user_channel_phone_unique.sql,并确认重复账号检查无结果、uk_channel_phone 已存在、uk_group_phone 已移除;若仍有重复 channel_code + phone,脚本会跳过新增新索引并保留旧索引,需人工核对账号后重跑。
  • 注册成功后直接返回登录 Token,current_identity 默认为 fan
  • 新注册用户头像为空,因此 user.profile_completion_step 返回 0;该步骤由服务端根据当前资料实时计算,不写入数据库。
  • 测试状态:已完成代码实现和 PHP 语法检查,待注册链路联调。