Example #1
0
        public async Task <IntrospectionM> IntrospectToken(string accessToken)
        {
            var result = new IntrospectionM();

            using (var client = new HttpClient())
            {
                var discovery = await DiscoveryService.GetDiscovery();

                var response = await client.IntrospectTokenAsync(new TokenIntrospectionRequest
                {
                    Address      = discovery.IntrospectionEndpoint,
                    ClientId     = Config.ApiName,
                    ClientSecret = Config.ClientSecret,
                    Token        = accessToken
                });

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

                result = Mapper.Map <IntrospectionM>(response);
            }

            return(result);
        }
        public async Task <bool> SignOut(string accessToken)
        {
            var result        = false;
            var introspection = await IdentityIntrospectionService.IntrospectToken(accessToken);

            var discovery = await DiscoveryService.GetDiscovery();

            var requestUrl = new RequestUrl(discovery.AuthorizeEndpoint);
            var url        = requestUrl.CreateAuthorizeUrl(Config.ClientId, "id_token", "openid email TSAPI");

            using (var client = new HttpClient())
            {
                var response = await client.GetAsync(url);

                result = response.StatusCode == System.Net.HttpStatusCode.OK;
            }

            return(result);
        }