public async Task <RequestTokenResponse> FidectusGetAuthenticationToken(RequestTokenRequest requestTokenRequest, IFidectusConfiguration fidectusConfiguration)
        {
            var requestTokenResponse = await redisService.Get <FidectusAuthenticationToken>(RedisConstants.FidectusAuthenticationTokenKey, requestTokenRequest.ClientId);

            if (!string.IsNullOrWhiteSpace(requestTokenResponse?.AccessToken))
            {
                logger.LogInformation("Reusing cached Fidectus access token...");

                return(new RequestTokenResponse
                {
                    AccessToken = requestTokenResponse.AccessToken,
                    IsSuccessStatusCode = true
                });
            }

            logger.LogInformation("Getting new Fidectus access token...");

            var httpClient = httpClientFactory.CreateClient();

            httpClient.BaseAddress = new Uri(fidectusConfiguration.FidectusAuthUrl);

            var getAuthenticationToken = await PostAsync <RequestTokenRequest, RequestTokenResponse>(httpClient, fidectusConfiguration.FidectusAuthUrl, requestTokenRequest);

            var fidectusAuthenticationToken = new FidectusAuthenticationToken {
                AccessToken = getAuthenticationToken.AccessToken
            };

            await redisService.Set(fidectusAuthenticationToken, 24, RedisConstants.FidectusAuthenticationTokenKey, requestTokenRequest.ClientId);

            logger.LogInformation("New Fidectus access token cached");

            return(getAuthenticationToken);
        }
        public async Task <RequestTokenResponse> EboGetAuthenticationToken(RequestTokenRequest requestTokenRequest, IEquiasConfiguration equiasConfiguration)
        {
            var httpClient = httpClientFactory.CreateClient();

            httpClient.BaseAddress = new Uri(equiasConfiguration.ApiDomain);

            return(await PostAsync <RequestTokenRequest, RequestTokenResponse>(httpClient, equiasConfiguration.RequestTokenUri, requestTokenRequest));
        }
Exemplo n.º 3
0
 public async Task <RequestTokenResponse> CreateAuthenticationTokenAsync(RequestTokenRequest requestTokenRequest, string apiJwtToken)
 {
     return(await equiasAuthenticationService.EboGetAuthenticationToken(requestTokenRequest, new EquiasConfiguration(await GetEquiasDomainAsync(apiJwtToken))));
 }