コード例 #1
0
        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);
        }