public async Task <AuthenticatedAccountResponse> AuthenticateAsync(Account account) { string accessToken = _accessTokenGenerator.GenerateToken(account); string refreshToken = _refreshTokenGenerator.GenerateToken(); RefreshToken refreshTokenDTO = new RefreshToken() { Token = refreshToken, AccountId = account.Id }; await _refreshTokenRepository.CreateAsync(refreshTokenDTO); return(new AuthenticatedAccountResponse(accessToken, refreshToken)); }
public async Task <AuthenticatedUserResponse> Authenticate(User user) { string accessToken = _accessTokenGenerator.GenerateToken(user); string refreshToken = _refreshTokenGenerator.GenerateToken(); RefreshToken refreshTokenDTO = new RefreshToken() { Token = refreshToken, UserId = user.Id }; await _refreshTokenRepository.Create(refreshTokenDTO); return(new AuthenticatedUserResponse() { AccessToken = accessToken, RefreshToken = refreshToken }); }
public Common.Message.AuthorizationResult CheckAccess(Common.Message.AuthorizationRequest request) { AuthorizationResult result = new AuthorizationResult(); TokenValidator tokenValidator = new TokenValidator(); var validationResult = tokenValidator.ValiateIdentityToken(request.IdentityToken); if (validationResult.IsError) { result.ErrorMessage = validationResult.Error; return(result); } AccessTokenGenerator generator = new AccessTokenGenerator(); var accessToken = generator.GenerateToken(request.IdentityToken, request.Resource); result.AccessToken = accessToken; return(result); }
public IActionResult Login(UserLogInDTO loginUser) { var user = new UserLogInDTO( loginUser.Email, loginUser.PasswordHash ); if (!ModelState.IsValid) { return(BadRequest("That user does not exist!")); } var userdb = Context.Users.FirstOrDefault(u => (u.Email == user.Email)); if (userdb == null) { return(Unauthorized()); } bool isPwCorrect = PasswordHasher.VerifyPassword(user.PasswordHash, userdb.PasswordHash); if (!isPwCorrect) { return(Unauthorized()); } string accessToken = AccessTokenGenerator.GenerateToken(userdb); Response.Cookies.Append("accessToken", accessToken, new CookieOptions { HttpOnly = true }); return(Ok(new { message = "success" })); }
public async Task <IActionResult> LoginAsync(LoginModel model) { if (ModelState.IsValid is false) { return(BadRequest()); } var user = await _userManager.FindByEmailAsync(model.Email); if (user is null || await _userManager.CheckPasswordAsync(user, model.Password) is false) { return(Unauthorized()); } var authClaims = await GetUserAuthClaimsAsync(user); var authSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Secret"])); string token = _accessTokenGenerator.GenerateToken(_configuration["JWT:ValidIssuer"], _configuration["JWT:ValidAudience"], authClaims, authSigningKey); return(Ok(token)); }