Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

HttpClientService.cs 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System.Net;
  2. namespace Diligent.WebAPI.Business.Services
  3. {
  4. public class HttpClientService : IHttpClientService
  5. {
  6. private const string GoogleApiTokenInfoUrl = "https://www.googleapis.com/oauth2/v3/tokeninfo?id_token={0}";
  7. private string[] SupportedClientsIds = { "" };
  8. private readonly AuthorizationSettings _authSettings;
  9. public HttpClientService(IOptions<AuthorizationSettings> authSettings)
  10. {
  11. }
  12. public async Task<bool> IsTokenValid(string providerToken)
  13. {
  14. var httpClient = new HttpClient();
  15. var requestUri = new Uri(string.Format(GoogleApiTokenInfoUrl, providerToken));
  16. HttpResponseMessage httpResponseMessage;
  17. try
  18. {
  19. httpResponseMessage = httpClient.GetAsync(requestUri).Result;
  20. }
  21. catch
  22. {
  23. return false;
  24. }
  25. if (httpResponseMessage.StatusCode != HttpStatusCode.OK)
  26. {
  27. return false;
  28. }
  29. var response = httpResponseMessage.Content.ReadAsStringAsync().Result;
  30. var googleApiTokenInfo = JsonConvert.DeserializeObject<GoogleApiTokenInfo>(response);
  31. //if (!SupportedClientsIds.Contains(googleApiTokenInfo.aud))
  32. if (googleApiTokenInfo.aud != _authSettings.GoogleClientId)
  33. {
  34. return false;
  35. }
  36. return true;
  37. }
  38. }
  39. }