/// <summary>
        /// Set an access token on the HTTP request
        /// </summary>
        /// <param name="request"></param>
        /// <param name="forceRenewal"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        protected virtual async Task SetTokenAsync(HttpRequestMessage request, bool forceRenewal, CancellationToken cancellationToken)
        {
            var parameters = new ClientAccessTokenParameters
            {
                ForceRenewal = forceRenewal
            };

            var token = await _accessTokenManagementService.GetClientAccessTokenAsync(_tokenClientName, parameters, cancellationToken);

            if (!string.IsNullOrWhiteSpace(token))
            {
                request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
            }
        }
    private async Task <AuthenticationHeaderValue> GetOAuthHeader(CancellationToken cancelToken = default)
    {
        var oAuthUri = config.GetValue <Uri>("Auth:OAuth:TokenUrl");

        if (oAuthUri != null)
        {
            var token = await tokenService.GetClientAccessTokenAsync(cancellationToken : cancelToken);

            if (token == null)
            {
                log.LogError("Failed to get oauth token.");
                return(null);
            }

            log.LogDebug("Using oauth token");

            return(new AuthenticationHeaderValue("Bearer", token));
        }

        return(null);
    }
        public async Task SetAccessTokenAsync(HttpRequestMessage request, bool forceRenewal = false)
        {
            var accessToken = await _accessTokenManagementService.GetClientAccessTokenAsync(forceRenewal);

            request.Headers.Add(_tokenRequestParameters.AuthorizationHeaderName, accessToken);
        }