Esempio n. 1
0
        public async Task <string> RefreshAccessToken(string refreshTokenStr)
        {
            var decodedRefreshToken = _refreshTokenDecoder.Decode(refreshTokenStr);

            if (decodedRefreshToken == null)
            {
                _logger.LogWarning("Cannot refresh access token - decoding failure");
                return(null);
            }

            var refreshToken = await _refreshTokenRepository.GetByIdAsync(decodedRefreshToken.Id);

            if (refreshToken?.IsRevoked ?? false)
            {
                _logger.LogWarning("Cannot refresh access token - no such refresh token or token is revoked");
                return(null);
            }

            return(_accessTokenService.Create(decodedRefreshToken.UserClaims));
        }
 public TokenPayload DecodeRefreshToken([FromBody] string refreshToken)
 {
     return(_refreshTokenDecoder.Decode(refreshToken));
 }