Пример #1
0
        public async Task <TokenResponse> AcquireTokenByAuthorizationCodeAsync(string code)
        {
            var disco = await OidcDiscoveryHelper.GetDiscoveryDocument(_options.Authority);

            if (disco.IsError)
            {
                throw new Exception(disco.Error);
            }

            var extraParams = GetBackChannelExtraParameters(disco);
            var c           = new TokenClient(disco.TokenEndpoint, _options.ClientId, _options.ClientSecret);
            var result      = await c.RequestAuthorizationCodeAsync(code, _options.RedirectUri, string.Empty, extraParams);

            return(result);
        }
Пример #2
0
        public async Task <TokenResponse> ClientCredentialsSignIn()
        {
            var disco = await OidcDiscoveryHelper.GetDiscoveryDocument(_options.Authority);

            if (disco.IsError)
            {
                throw new Exception(disco.Error);
            }

            var extraParams = GetBackChannelExtraParameters(disco);
            var c           = new TokenClient(disco.TokenEndpoint, _options.ClientId, _options.ClientSecret);
            var result      = await c.RequestClientCredentialsAsync(_options.Scope, extraParams);

            return(result);
        }
Пример #3
0
        public async Task <TokenResponse> AcquireTokenByRefreshToken(string refreshToken)
        {
            var disco = await OidcDiscoveryHelper.GetDiscoveryDocument(_options.Authority);

            if (disco.IsError)
            {
                throw new Exception(disco.Error);
            }

            var extraParams = GetBackChannelExtraParameters(disco);
            var c           = new TokenClient(disco.TokenEndpoint, _options.ClientId, _options.ClientSecret);
            var result      = await c.RequestRefreshTokenAsync(refreshToken, extraParams);

            return(result);
        }
Пример #4
0
        public async Task <LoginResult> Login()
        {
            var disco = await OidcDiscoveryHelper.GetDiscoveryDocument(_options.Authority);

            if (disco.IsError)
            {
                throw new Exception(disco.Error);
            }

            var result = await oidcClient.LoginAsync(new LoginRequest()
            {
                BackChannelExtraParameters  = GetBackChannelExtraParameters(disco),
                FrontChannelExtraParameters = GetFrontChannelExtraParameters()
            });

            return(result);
        }