public async Task <IActionResult> LogIn([FromBody] UserLoginApiModel user) { try { var _user = await _userManager.FindByEmailAsync(user.Email); if (_user == null) { return(StatusCode(204, $"User {user.Email} doesn`t found")); } var confirmPassword = _userManager.PasswordHasher.VerifyHashedPassword(_user, _user.PasswordHash, user.Password); if (confirmPassword == PasswordVerificationResult.Failed) { return(StatusCode(401, "Password doesn`t match")); } var token = _tokenFabric.GetToken(_user).Result; var response = new { user_id = _user.Id, acces_token = token }; return(Ok(response)); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
public async Task <TokenApiModel> LoginUserAsync(UserLoginApiModel model) { var user = _userManager.FindByEmailAsync(model.Email).Result; if (user == null) { throw new BadRequestException(_resourceManager.GetString("LoginOrPasswordInvalid")); } if (user != null && user.IsDeleted == true) { throw new UserIsDeletedException(_resourceManager.GetString("UserIsDeleted")); } var loginResult = await _signInManager.PasswordSignInAsync(user, model.Password, false, false); if (!loginResult.Succeeded) { throw new BadRequestException(_resourceManager.GetString("LoginOrPasswordInvalid")); } var token = _jwtService.CreateToken(_jwtService.SetClaims(user)); var refreshToken = _jwtService.CreateRefreshToken(); await _userRepository.UpdateUserTokenAsync(user.Id, refreshToken); await _signInManager.SignInAsync(user, isPersistent : false); return(new TokenApiModel { Token = token, RefreshToken = refreshToken }); }
public async Task <IActionResult> Login([FromBody] UserLoginApiModel model) { var validator = new LoginValidator(_recaptcha, _resourceManager); var validResult = validator.Validate(model); if (!validResult.IsValid) { return(BadRequest(new MessageApiModel() { Message = validResult.ToString() })); } var loginResult = await _accountService.LoginUserAsync(model); return(Ok(loginResult)); }
private string CreateToken(UserLoginApiModel userLogin) { return("token"); //TODO : replace with jwt token }