private async Task<JsonRespondBody> LoginMethod(JsonRequestBody json)
{
if (json.Parameters.ContainsKey("login") == false || json.Parameters.ContainsKey("password") == false)
{
return new JsonRespondBody { Status = "error", Error = "Invalid parameters" };
}
string login = json.Parameters["login"];
string password = json.Parameters["password"];
string uname = login;
//проверка логина и пароля на корректность
var singingresult = await SignInManager.PasswordSignInAsync(login, password, false, false);
if (singingresult == SignInStatus.Failure)
{
var suser = await UserManager.FindByEmailAsync(login);
if (suser == null)
{
return new JsonRespondBody { Status = "Failure", Error = "Invalid login or password" };
}
singingresult = await SignInManager.PasswordSignInAsync(suser.UserName, password, false, false);
if (singingresult == SignInStatus.Failure)
{
return new JsonRespondBody { Status = "Failure", Error = "Invalid login or password" };
}
uname = suser.UserName;
}
var user = DataManager.User.GetUserByName(uname);
JsonRespondBody result = new JsonRespondBody { Status = "OK" };
//формируем результат
usertoken token = DataManager.User.GenerateToken(user.Id);
UserSerealizerBody ub = GetUserInfo(user.Id);
ub.Token = token.Token;
result.Result = ub;
return result;
}