public async Task <IActionResult> RenewTokens([FromBody] AuthenticationTokens authenticationTokens) { int userId; try { userId = authenticationTokens.GetUserIdFromClaims(_configuration.GetSecretKey()); await _loggingService.SaveAuditLog($"Refreshing tokens for user with user id {userId}", AuditActionEnum.TokenRefresh); } catch (Exception) { return(BadRequest()); } var refreshToken = await RetrieveRefreshToken(authenticationTokens.RefreshToken, userId); if (refreshToken == null || !_authenticationService.IsRefreshTokenValid(refreshToken)) { return(BadRequest()); } var newTokens = await _authenticationService.GenerateTokens(userId); await _loggingService.SaveAuditLog($"Deleting old refresh token for user with user id {userId}", AuditActionEnum.Delete); await _authenticationRepository.DeleteToken(refreshToken); return(Ok(newTokens)); }
public void Get_user_id_from_jwt_token_claims(string token, int expectedUserId) { var key = "qwertyuiopasdfghjklzxcvbnm123456lsh40897fsljlj4324ljk234k3jfsdfsdfsdfd45h34k5hg345lk3hg34jklg345kjhg345lkjh3g4534512312313dffsdf"; var authenticationTokens = new AuthenticationTokens { AccessToken = token, RefreshToken = "something" }; var actualUserId = authenticationTokens.GetUserIdFromClaims(key); Assert.Equal(expectedUserId, actualUserId); }