private async Task <string> GetClientAccessToken() { var clientAccessToken = m_tokenStorage.GetAccessToken(); if (clientAccessToken != null && !string.IsNullOrEmpty(clientAccessToken.Token) && clientAccessToken.TokenExpiration.AddMinutes(AccessTokenExpirationWindowInMinutes) > DateTime.UtcNow) { return(clientAccessToken.Token); } var tokenResponse = await m_tokenClientFactory.Invoke().GetAccessTokenAsync(string.Join(" ", m_openIdConnectConfig.Scopes)); if (tokenResponse.IsError) { m_logger.LogError(tokenResponse.Error); return(string.Empty); } SaveAccessToken(tokenResponse); return(tokenResponse.AccessToken); }