Esempio n. 1
0
        public async Task <LoginResponse> LogWithExternalProviderAsync(ExternalTokenRequest parameters)
        {
            var lr    = new LoginResponse();
            var disco = await Discovery.GetAsync();

            //var disco = await _httpClient.GetDiscoveryDocumentAsync();
            if (disco.IsError)
            {
                lr.Message = disco.Error.ToString();
                return(lr);
            }
            var response = await _httpClient.RequestTokenAsync(new TokenRequest
            {
                Address = disco.TokenEndpoint,
                //Address = $"{baseUrl}connect/token",
                ClientId   = clientId,
                GrantType  = "delegation",
                Parameters = new Dictionary <string, string> {
                    { "token", parameters.Token }, { "scope", scope }, { "provider", parameters.Provider }
                }
            });

            lr = await MapToLoginResponse(response);

            return(lr);
        }
        public async Task <LoginResponse> ExchangeTokenAsync(string token, string provider)
        {
            // Change external access-token by internal access-token
            // To authenticate user by changing token
            var param = new ExternalTokenRequest
            {
                Token    = token,
                Provider = provider
            };

            return(await AuthService.LogWithExternalProviderAsync(param));
        }