Как получить информацию о пользователе с помощью токена доступа Google

#json #rest #oauth-2.0 #google-oauth #access-token

Вопрос:

Привет, я разрабатываю логин Google oauth2, и я не знаю, как получить информацию о пользователе с помощью маркера доступа или идентификатора, используя эти URL-адреса

     "sub": "100366573866312827626",
    "picture": "https://lh3.googleusercontent.com/a/default-user=s96-c"
}
 
 {
    "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 запросе?