兔兔答题目前支持多种登录方式,如常见的账号和密码、短信验证和微信code登录。由于个人主体是无法通过微信手机号验证的方式,进一步获取到用户的手机号,推荐可以使用用户输入的方式进行获取。
1、如果是通过微信小程序授权code的方式进行登录,则对用户的openid进行校验,一个openid对应一个用户。如需要用户绑定手机号,则需要再用户登录成功之后,某些特定的业务场景下,要求用户强制绑定手机号。
2、如果是通过手机号+验证码,或者是账号密码登录这两种登录方式在用户登录成功之后,是没有用户的openid记录的,因此需要走绑定用户小程序的openid接口。
WARNING
不管是用什么方式登录,系统对用户识别的唯一标识就是手机号。个人主体的微信小程序,如果不需要绑定手机号,则直接走微信小程序code登录接口即可,如果是需要绑定手机号, 则通过微信小程序的code登录成功之后,再绑定用户的手机号。如果是企业主体,按理登录方式也应该如此。如果是单纯通过手机号、账号密码登录的方式,需要使用小程序的某些接口,务必在登录成功之后,调用绑定小程序openid接口。
手机号+验证码登录
通过手机号+验证码的登录方式,系统会自动判断该手机号是否存在,如果存在则直接返回用户信息,如果不存在则根据手机号自动创建用户信息,并返回默认的用户昵称和头像信息。手机号验证码请调用公共模块中的短信验证发送接口。
请求方法:POST
是否鉴权:否
请求编码:Content-Type:application/x-www-form-urlencoded
响应编码:Content-Type:application/json;charset=UTF-8
请求地址:index/login/numberLogin
请求参数:
参数名 | 参数类型 | 是否必填 | 参数说明 | 示例值 |
---|---|---|---|---|
loginPhone | string | 是 | 手机号 | 156832123456 |
phoneCode | int | 是 | 手机号验证码 | 125985 |
- 成功示例:
javascript
{
"data": {
"login_token": "d891b9b3c4a16e454fd7310bfef4391b",
"nickname": "兔兔答题",
"avatar": "https://www.tutudati.com/uploads/images/20231028/20231028132405e042f8860.png"
},
"code": 100,
"msg": "请求成功"
}
参数名 | 参数类型 | 是否必有 | 参数说明 | 示例值 |
---|---|---|---|---|
login_token | string | 是 | 登录token | 见上述示例 |
nickname | string | 是 | 用户昵称 | 见上述示例 |
avatar | string | 是 | 用户头像 | 见上述示例 |
- 失败示例:
javascript
{
"code": 101,
"data": [],
"msg": "账号错误"
}