/// <inheritdoc/>
        public async Task <TokenRevocationResponse> RevokeRefreshTokenAsync(string refreshToken)
        {
            var requestDetails = await _configService.GetTokenRevocationRequestAsync();

            requestDetails.Token         = refreshToken;
            requestDetails.TokenTypeHint = OidcConstants.TokenTypes.RefreshToken;

            return(await _httpClient.RevokeTokenAsync(requestDetails));
        }
Example #2
0
        /// <inheritdoc/>
        public async Task <TokenRevocationResponse> RevokeRefreshTokenAsync(
            string refreshToken,
            UserAccessTokenParameters parameters = null,
            CancellationToken cancellationToken  = default)
        {
            _logger.LogDebug("Revoking refresh token: {token}", refreshToken);

            parameters ??= new UserAccessTokenParameters();

            var requestDetails = await _configService.GetTokenRevocationRequestAsync(parameters);

            requestDetails.Token         = refreshToken;
            requestDetails.TokenTypeHint = OidcConstants.TokenTypes.RefreshToken;

#if NET5_0
            requestDetails.Options.TryAdd(AccessTokenManagementDefaults.AccessTokenParametersOptionsName, parameters);
#elif NETCOREAPP3_1
            requestDetails.Properties[AccessTokenManagementDefaults.AccessTokenParametersOptionsName] = parameters;
#endif

            var httpClient = _httpClientFactory.CreateClient(AccessTokenManagementDefaults.BackChannelHttpClientName);
            return(await httpClient.RevokeTokenAsync(requestDetails, cancellationToken));
        }