#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 для получения данных из браузера
после десериализации я получил данные.