Не удается получить данные из Google api token verifier на C#

#c# #.net #asp.net-web-api #google-api

#c# #.net #asp.net-web-api #google-api

Вопрос:

Я использую средство проверки токенов Google api

https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123

и это дает мне идентификатор электронной почты пользователя в браузере, например

 {
 "iss": "https://accounts.google.com",
 "sub": "110169484474386276334",
 "azp": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com",
 "aud": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com",
 "iat": "1433978353",
 "exp": "1433981953",

 "email" OAuth scopes to the application.
 "email": "testuser@gmail.com",
 "email_verified": "true",
 "name" : "Test User",
 "picture": "https://lh4.googleusercontent.com/-kYgzyAWpZzJ/ABCDEFGHI/AAAJKLMNOP/tIXL9Ir44LE/s99-c/photo.jpg",
 "given_name": "Test",
 "family_name": "User",
 "locale": "en"
}
  

Теперь я хочу вызвать этот URL-адрес из своего внутреннего кода и получить идентификатор почты для проверки подлинности

Я пробовал что-то вроде этого

 function(string access_token){
var url = "https://www.googleapis.com/oauth2/v3/tokeninfo?id_token="   access_token;

WebRequest request = WebRequest.Create(url);
 request.Method = "GET";
 using (WebResponse response = request.GetResponse())
 {
  using (Stream stream = response.GetResponseStream())
   {
    XmlTextReader reader = new XmlTextReader(stream);

   }
  }
}
  

Но не удается получить данные из этого json

Есть альтернативы?

Мне просто нужно получить идентификатор электронной почты пользователя с помощью access_token или idToken, который клиент отправит на сервер.

Комментарии:

1. Почему вы используете XmlTextReader и ожидаете, что сможете читать Json?

Ответ №1:

Решаемая

 var json = new WebClient().DownloadString(url);
  

используется WebClient для получения данных из браузера

после десериализации я получил данные.