public async Task <IActionResult> SignInAsync(string document, string password) { HttpStatusCode statusCode = HttpStatusCode.OK; ResponseSignInUser response = new ResponseSignInUser(); try { var result = await _users.LoginAsync(document, password); if (result.Succeeded) { //Get JWT TOKEN GenerateJWT token = new GenerateJWT(_configuration); User usuario = _users.GetUserByIdentification(document); var userRegistered = await _userManager.FindByEmailAsync(usuario.Email); response.IdUser = userRegistered.Id.ToString(); response.JWT = token.GenerateTokenUser(userRegistered); return(StatusCode((int)statusCode, response)); } else if (result.IsNotAllowed) { response.ErrorMessage = $"Failed to signIn user with identificacion: {document}, signIn is not allowed"; response.Errors.Add(response.ErrorMessage); } else { response.ErrorMessage = "Credenciales inválidas"; response.Errors.Add(response.ErrorMessage); } statusCode = HttpStatusCode.BadRequest; response.StatusCode = (int)statusCode; response.IsSucessfull = false; } catch (DatabaseException e) { statusCode = HttpStatusCode.InternalServerError; response.StatusCode = (int)statusCode; response.IsSucessfull = false; response.ErrorMessage = e.Message; _logger.LogError(e, $"Failed to signIn user with identification: {document}"); } catch (Exception e) { statusCode = HttpStatusCode.InternalServerError; response.StatusCode = (int)statusCode; response.IsSucessfull = false; response.ErrorMessage = "Internal server error"; _logger.LogError(e, $"Failed to signIn user with identification: {document}"); } return(StatusCode((int)statusCode, response)); }
public async Task <IActionResult> SignInAsync(RequestIdentityRegister User) { HttpStatusCode statusCode = HttpStatusCode.OK; ResponseSignInUser response = new ResponseSignInUser(); try { var result = await _signInManager.PasswordSignInAsync(User.Email, User.Password, true, lockoutOnFailure : false); if (result.Succeeded) { //Get JWT TOKEN GenerateJWT token = new GenerateJWT(_configuration); var userRegistered = await _userManager.FindByEmailAsync(User.Email); response.IdUser = userRegistered.Id.ToString(); response.JWT = token.GenerateTokenUser(userRegistered); return(StatusCode((int)statusCode, response)); } else if (result.IsLockedOut) { response.ErrorMessage = $"LockedOut account with email {User.Email}"; } else if (result.IsNotAllowed) { response.ErrorMessage = $"Failed to signIn user with email {User.Email}, signIn is not allowed"; } else { response.ErrorMessage = $"Failed to signIn user with email {User.Email}, invalid credentials"; } statusCode = HttpStatusCode.BadRequest; response.StatusCode = (int)statusCode; response.IsSucessfull = false; } catch (Exception e) { statusCode = HttpStatusCode.InternalServerError; response.StatusCode = (int)statusCode; response.IsSucessfull = false; response.ErrorMessage = "Internal server error"; _logger.LogError(e, $"Failed to signIn user with email {User.Email}"); } return(StatusCode((int)statusCode, response)); }