/// <summary> /// Revoke all access tokens /// </summary> /// <param name="storeId">Store identifier for which access token should be revoked</param> /// <returns>The asynchronous task whose result determines whether tokens are revoked</returns> public async Task <bool> RevokeAccessTokensAsync(int storeId) { try { var settings = _settingService.LoadSetting <SquarePaymentSettings>(storeId); //get response var request = new RevokeAccessTokenRequest { ApplicationId = settings.ApplicationId, AccessToken = settings.AccessToken }; var httpRequest = new HttpRequestMessage(HttpMethod.Post, "revoke"); httpRequest.Headers.Add(HeaderNames.Authorization, $"Client {settings.ApplicationSecret}"); httpRequest.Content = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, MimeTypes.ApplicationJson); var response = await _httpClient.SendAsync(httpRequest); //return result var responseContent = await response.Content.ReadAsStringAsync(); var accessTokenResponse = JsonConvert.DeserializeObject <RevokeAccessTokenResponse>(responseContent); return(accessTokenResponse?.SuccessfullyRevoked ?? false); } catch (AggregateException exception) { //rethrow actual exception throw exception.InnerException; } }
/// <summary> /// Revoke all access tokens /// </summary> /// <returns>The asynchronous task whose result determines whether tokens are revoked</returns> public async Task <bool> RevokeAccessTokensAsync() { try { //get response var request = new RevokeAccessTokenRequest { ApplicationId = _squarePaymentSettings.ApplicationId, AccessToken = _squarePaymentSettings.AccessToken }; var requestContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, MimeTypes.ApplicationJson); var response = await _httpClient.PostAsync("revoke", requestContent); //return result var responseContent = await response.Content.ReadAsStringAsync(); var accessTokenResponse = JsonConvert.DeserializeObject <RevokeAccessTokenResponse>(responseContent); return(accessTokenResponse?.SuccessfullyRevoked ?? false); } catch (AggregateException exception) { //rethrow actual exception throw exception.InnerException; } }
/// <summary> /// Revoke all access tokens /// </summary> /// <param name="revokeTokenRequest">Request parameters to revoke access token</param> /// <returns>True if tokens were successfully revoked; otherwise false</returns> public bool RevokeAccessTokens(RevokeAccessTokenRequest revokeTokenRequest) { //create post data var postData = Encoding.Default.GetBytes(JsonConvert.SerializeObject(revokeTokenRequest)); //create web request var serviceUrl = $"{GetOAuthServiceUrl()}/revoke"; var request = (HttpWebRequest)WebRequest.Create(serviceUrl); request.Method = WebRequestMethods.Http.Post; request.Accept = "application/json"; request.ContentType = "application/json"; request.ContentLength = postData.Length; request.UserAgent = SquarePaymentDefaults.UserAgent; //add authorization header request.Headers.Add(HttpRequestHeader.Authorization, $"Client {revokeTokenRequest.ApplicationSecret}"); //post request using (var stream = request.GetRequestStream()) { stream.Write(postData, 0, postData.Length); } //get response var httpResponse = (HttpWebResponse)request.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { //return received value var response = JsonConvert.DeserializeObject <RevokeAccessTokenResponse>(streamReader.ReadToEnd()); return(response?.SuccessfullyRevoked ?? false); } }
public async Task <bool> Logout() { var token = await GetAccessToken(); var url = "https://api.trakt.tv/oauth/revoke"; var request = new HttpRequestMessage(HttpMethod.Post, url); var revokeBody = new RevokeAccessTokenRequest { AccessToken = token, ClientId = _configuration.TraktClientId, ClientSecret = _configuration.TraktClientSecret }; request.Content = new StringContent(JsonConvert.SerializeObject(revokeBody), Encoding.UTF8, "application/json"); var response = await _httpClient.SendAsync(request); if (response.IsSuccessStatusCode) { _tokenRepository.RemoveAccessToken(); return(true); } return(false); }