loginByPhone method
使用phone
和验证码code
进行登录。分为三种场景:
- 新账号注册:当
no
非null且pwd
非null时,服务端会对phone
与no
的重复注册情况进行验证,然后注册新账号并登录。 - 忘记了密码:当
no
为null但pwd
非null时,服务端会对phone
对应的账号的进行密码重置,然后登录。 - 手机号登录:不满足上面两种情况时,直接使用
phone
对应的账号的进行登录,如果不存在phone
对应的账号则创建一个新账号之后再登录。
Implementation
Future<EasyPacket<void>> loginByPhone({required String phone, required String code, String? no, String? pwd}) async {
final response = await _guestClient.httpRequest('$host/loginByPhone', data: {'bsid': bsid, 'phone': phone, 'code': code, 'no': no, 'pwd': pwd});
if (response.ok) {
user.updateByJson(response.data!['user']);
_resetAliveClient(response.data!['url'], response.data!['pwd']);
onCredentials(ComTools.formatUserNick(user), encryptCredentials(user, secret));
} else if (response.code == 401) {
onCredentials(ComTools.formatUserNick(user), null);
}
return response;
}