#json #rest #oauth-2.0 #google-oauth #access-token
Вопрос:
Привет, я разрабатываю логин Google oauth2, и я не знаю, как получить информацию о пользователе с помощью маркера доступа или идентификатора, используя эти URL-адреса
- https://www.googleapis.com/oauth2/v3/userinfo передача маркера доступа в заголовке авторизации возвращает этот json:
"sub": "100366573866312827626",
"picture": "https://lh3.googleusercontent.com/a/default-user=s96-c"
}
- https://www.googleapis.com/oauth2/v3/tokeninfo?id_token={id_token} получить этот json
{
"iss": "https://accounts.google.com",
"azp": "375890336523-u4rpach5688ltoc0v4mof1r7j70gem95.apps.googleusercontent.com",
"aud": "375890336523-u4rpach5688ltoc0v4mof1r7j70gem95.apps.googleusercontent.com",
"sub": "100366573866312827626",
"at_hash": "htkn2tQqV4Ff4EmrtPDh9w",
"iat": "1636631006",
"exp": "1636634606",
"alg": "RS256",
"kid": "27c72619d0935a290c41c3f010167138685f7e53",
"typ": "JWT"
}
Но в обоих json нет никакой информации о пользователе, такой как имя пользователя или адрес электронной почты
спасибо за ваше время и извините за мой английский, это не мой родной язык
Ответ №1:
Убедитесь, что при авторизации пользователя вы запросили область действия профиля.
Использование маркера доступа, возвращенного при авторизации вашего приложения пользователем. Вы можете получить информацию о профиле пользователей, которым вы должны позвонить, с помощью метода People.get
curl
'https://people.googleapis.com/v1/people/me?key=[YOUR_API_KEY]'
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]'
--header 'Accept: application/json'
--compressed
Конечная точка с информацией о пользователе предоставит вам немного информации, но не так много, как при использовании конечной точки userinfo.
Google не всегда возвращает утверждения пользователей в маркере идентификатора, поэтому я бы не стал полагаться на это.
Комментарии:
1. Привет, я не очень хорошо разбираюсь в oauth, как я получаю область профиля, и почему вы сказали, что ВАШ_АПИ_КЕЙ означает мой идентификатор клиента?
2. Теперь я получаю полное имя и номер телефона, но в 2 запросах, поместите профиль области и каждый из них, можно ли получить всю информацию только в 1 запросе?