public async Task <IActionResult> Login(LoginData login) { // This might be used if you want to save an Auth cookie // var result = await signInManager.PasswordSignInAsync(login.Username, login.Password, false, false); var user = await userManager.FindByNameAsync(login.Username); if (user != null) { var result = await userManager.CheckPasswordAsync(user, login.Password); if (result) { return(Ok(new UserWithToken { UserId = user.Id, Token = userManager.CreateToken(user), })); } await userManager.AccessFailedAsync(user); } return(Unauthorized()); }
public async Task <IActionResult> Login([FromBody] LoginRequest request) { var user = await _userManager.FindByIdAsync(request.Username); if (user == null) { _logger.LogInformation($"User #{request.Username} Not Found"); throw new NotFoundException("Either username or credential provided is invalid"); } if (!await _userManager.IsUserActiveAsync(user)) { _logger.LogInformation($"User #{request.Username} Not Active"); throw new UnAuthorizedException("User account is not active"); } var lockedOut = await _userManager.IsLockedOutAsync(user.Id); if (lockedOut) { throw new UnAuthorizedException("User is locked out contact administrator"); } var validPassword = await _userManager.VerifyPasswordAsync(user, request.Password); if (!validPassword) { _logger.LogInformation($"User #{request.Username} Entered a wrong password"); await _userManager.AccessFailedAsync(user.Id); throw new UnAuthorizedException("Either username or credential provided is invalid"); } var response = new LoginResponse { Status = await _userManager.HasPasswordExpiredAsync(user) ? AuthenticationStatus.RequirePasswordChange.ToString() : AuthenticationStatus.Succeed.ToString(), JsonWebToken = await _userManager.CreateLoginAsync(user, request.TokenExpireAt), UserDetails = _mapper.Map <UserProfile>(user) }; return(Ok(response)); }
public async Task <IActionResult> Login(LoginData login) { var user = await userManager.FindByNameAsync(login.UserName); if (user != null) { var result = await userManager.CheckPasswordAsync(user, login.Password); if (result) { return(Ok(new UserWithToken { UserId = user.Id, Token = userManager.CreateToken(user) })); } await userManager.AccessFailedAsync(user); } return(Unauthorized()); }
public async Task <IActionResult> Login(LoginData login) { var user = await userManager.FindByNameAsync(login.UserName); if (user != null) { var result = await userManager.CheckPasswordAsync(user, login.Password); if (result) { user.LoggedIn = true; await userManager.UpdateAsync(user); await chatHub.SendUpdatedUser(user.UserName, user.LoggedIn); return(Ok(await userManager.CreateUserWithToken(user))); } await userManager.AccessFailedAsync(user); } return(Unauthorized()); }