Table of Contents
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_code和group_code。 - 新账号写入
tieup_user,默认status = 1、is_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 语法检查,待注册链路联调。