phoneLoginPassword method
Future<NsgLoginResponse>
phoneLoginPassword({
- required String phoneNumber,
- required String securityCode,
- NsgLoginType? loginType,
Регистрация нового пользователя/восстановление пароля по e-mail или вход по паролю Опраделяется наличием или отсутствием securityCode В последнем случае, пользователю будет отправлен код верификации для дальнейшего использования в phoneLogin
Implementation
Future<NsgLoginResponse> phoneLoginPassword({required String phoneNumber, required String securityCode, NsgLoginType? loginType}) async {
this.phoneNumber = phoneNumber;
var login = NsgLoginModel();
login.phoneNumber = phoneNumber;
if (loginType != null) login.loginType = loginType;
//Если securityCode пустой, то это регистрация пользователя/восстановление пароля
//Такая "хитрая" система сделана для совместимости со старыми версиями приложения
//и со временем может быть заменена на раздельные функции или на новую систему авторизации
if (securityCode == '') {
login.register = true;
}
//Если securityCode не задан, заполняем его специальной фразой.
//По всей видимости, для проверки ее на стороне сервера
//Скорее всего, смысла в этом нет, оставлено для совместимости
login.securityCode = securityCode == '' ? defaultSecurityCode : securityCode;
var s = login.toJson();
var response = await (baseRequest(
function: 'PhoneLoginRequestSMS',
headers: getAuthorizationHeader(),
url: '$serverUri/$authorizationApi/PhoneLoginRequestSMS',
method: 'POST',
params: s,
));
var loginResponse = NsgLoginResponse.fromJson(response);
if (loginResponse.errorCode == 0) {
token = loginResponse.token;
isAnonymous = loginResponse.isAnonymous;
if (!isAnonymous && saveToken) {
// var _prefs = await SharedPreferences.getInstance();
// await _prefs.setString(applicationName, token!);
await saveCurrentServerToken();
}
}
return loginResponse;
}