public async Task <IActionResult> Login([FromBody] LoginViewModel info) { //info.userName = System.Net.WebUtility.UrlDecode(info.userName); //info.password = System.Net.WebUtility.UrlDecode(info.password); var user = await _userManager.FindByNameAsync(info.userName); if (user != null && await _userManager.CheckPasswordAsync(user, info.password)) { var roles = await _userManager.GetRolesAsync(user); LoggedInUserInfo userInfo = new LoggedInUserInfo(); userInfo.UserID = user.Id; userInfo.FirstName = user.FirstName; userInfo.LastName = user.LastName; userInfo.UserName = user.UserName; userInfo.Role = roles.FirstOrDefault(); var success = new SuccessfulLoginResponse { Token = Jwt.GetTokenFor(user.Id.ToString(), roles.FirstOrDefault()), User = userInfo }; var response = new LoginResponseViewModel(); response.successResonse = success; return(Ok(response)); } else { var response = new LoginResponseViewModel(); response.failedResponse = new FailedLoginResponse { Error = 1007 }; return(UnauthorizedError(response)); } }
public SuccessfulLoginResponse ApiSignIn(string email, string password) { SuccessfulLoginResponse output = null; var user = usersDAL.GetUser(email); var hashProvider = new HashProvider(); if (user != null && hashProvider.VerifyPasswordMatch(user.Password, password, user.Salt)) { if (IsUserSignedIn(user)) { RemoveUser(user); } string newAccessToken = GenerateAccessToken(); loggedInUsers.Add(newAccessToken, user); output = new SuccessfulLoginResponse(user, newAccessToken); } return(output); }