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); }