Google tokeninfo отсутствует информация профиля - PullRequest
0 голосов
/ 28 марта 2020

Я работаю над выполнением входа с помощью кнопки Google. Рабочий процесс работает, и по URL-адресу обратного вызова я получаю токен, который я отправляю в свой успокоительный API. API проверяет это, а затем вызывает маршрут https://oauth2.googleapis.com/tokeninfo с id_token в качестве параметра запроса. Однако в ответе, который я получаю, отсутствует информация о профиле (имя_файла, имя_имя, изображение и т. Д. c).

Вот фрагмент кода javascript, в котором я запускаю окно входа в систему (область действия профиля)

   const initGapi = (): void => {
      const g = window.gapi;
      g.load('auth2', () => {
         g.auth2.init({
            client_id: googleClientId[environmentType],
            scope: 'profile email openid',
            ux_mode: 'redirect',
            redirect_uri: window.location.origin + googleOAuth2Callback
         });
      });
   };

На экране согласия указано «Чтобы продолжить, Google предоставит Lingco Classroom ваше имя, адрес электронной почты, языковые предпочтения и изображение профиля. Перед использованием этого приложения вы можете просмотреть список Lingco Classroom. Политика конфиденциальности и условия обслуживания. "

Похоже, я запрашиваю правильную информацию.

Вот ответ, который я получаю в параметрах запроса на URL обратного вызова (токены кратко для краткости):


{
  "client_id": "10...q0.apps.googleusercontent.com",
  "id_token": "eyJhbGc...Hxkg",
  "login_hint": "AJDL....mz3Kw",
  "scope": "email profile openid https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email"
}

Опять же, профиль включен в область действия.

Затем, когда я вызываю маршрут https://oauth2.googleapis.com/tokeninfo?id_token=eyJhbGc...Hxkg, я получаю:

{
  "iss": "accounts.google.com",
  "azp": "105...o1q0.apps.googleusercontent.com",
  "aud": "105...o1q0.apps.googleusercontent.com",
  "sub": "100289254709626712724",
  "hd": "lingco.io",
  "email": "seth@lingco.io",
  "email_verified": "true",
  "iat": "1585368365",
  "exp": "1585371965",
  "jti": "795...a15a",
  "alg": "RS256",
  "kid": "53c66...c63",
  "typ": "JWT"
}

Который не включает информацию профиля. Область запрашивает информацию о профиле, экран согласия включает область профиля, как и ответ на обратный вызов. Тем не менее, когда я go на URL tokeninfo, информация о профиле пользователя не там. Можно ли получить имя пользователя и информацию о профиле с помощью токена id?

...