public async Task <Tuple <IdentityTokenResponse, IdentityTwoFactorResponse> > PostIdentityTokenAsync( TokenRequest request) { var requestMessage = new HttpRequestMessage { Version = new Version(1, 0), RequestUri = new Uri(string.Concat(IdentityBaseUrl, "/connect/token")), Method = HttpMethod.Post, Content = new FormUrlEncodedContent(request.ToIdentityToken(_platformUtilsService.IdentityClientId)) }; requestMessage.Headers.Add("Accept", "application/json"); request.AlterIdentityTokenHeaders(requestMessage.Headers); HttpResponseMessage response; try { response = await _httpClient.SendAsync(requestMessage); } catch (Exception e) { throw new ApiException(HandleWebError(e)); } JObject responseJObject = null; if (IsJsonResponse(response)) { var responseJsonString = await response.Content.ReadAsStringAsync(); responseJObject = JObject.Parse(responseJsonString); } if (responseJObject != null) { if (response.IsSuccessStatusCode) { return(new Tuple <IdentityTokenResponse, IdentityTwoFactorResponse>( responseJObject.ToObject <IdentityTokenResponse>(), null)); } else if (response.StatusCode == HttpStatusCode.BadRequest && responseJObject.ContainsKey("TwoFactorProviders2") && responseJObject["TwoFactorProviders2"] != null && responseJObject["TwoFactorProviders2"].HasValues) { return(new Tuple <IdentityTokenResponse, IdentityTwoFactorResponse>( null, responseJObject.ToObject <IdentityTwoFactorResponse>())); } } throw new ApiException(new ErrorResponse(responseJObject, response.StatusCode, true)); }
public async Task <IdentityResponse> PostIdentityTokenAsync(TokenRequest request) { var requestMessage = new HttpRequestMessage { Version = new Version(1, 0), RequestUri = new Uri(string.Concat(IdentityBaseUrl, "/connect/token")), Method = HttpMethod.Post, Content = new FormUrlEncodedContent(request.ToIdentityToken(_platformUtilsService.IdentityClientId)) }; requestMessage.Headers.Add("Accept", "application/json"); request.AlterIdentityTokenHeaders(requestMessage.Headers); HttpResponseMessage response; try { response = await _httpClient.SendAsync(requestMessage); } catch (Exception e) { throw new ApiException(HandleWebError(e)); } JObject responseJObject = null; if (IsJsonResponse(response)) { var responseJsonString = await response.Content.ReadAsStringAsync(); responseJObject = JObject.Parse(responseJsonString); } var identityResponse = new IdentityResponse(response.StatusCode, responseJObject); if (identityResponse.FailedToParse) { throw new ApiException(new ErrorResponse(responseJObject, response.StatusCode, true)); } return(identityResponse); }