Google Oauth2 userinfo API не возвращает данные об имени пользователя - PullRequest
1 голос
/ 05 апреля 2019

Последние пару месяцев я использовал этот URL для получения имени пользователя и информации после входа в систему с помощью OAuth.

    https://www.googleapis.com/oauth2/v1/userinfo?alt=json

Это дало мне JSON в следующем формате:

    {
      "id": "12345",
      "email": "name@gmail.com",
      "verified_email": true,
      "name": "First Last",
      "given_name": "First",
      "family_name": "Last",
      "link": "https://plus.google.com/12345",
      "picture": "https://lh3.googleusercontent.com/123photo.jpg",
      "locale": "en"
    }

Этим утром, когда мое приложение достигло этой конечной точки, оно получило JSON в следующем формате:

    {
      "id": "12345",
      "email": "name@gmail.com",
      "verified_email": true,
      "picture": "https://lh3.googleusercontent.com/123/photo.jpg"
    }

Я не внес никаких изменений в конфигурацию в консоли разработчика. Кто-нибудь знает, в чем может быть причина этой проблемы?

1 Ответ

0 голосов
/ 06 апреля 2019

Я думаю, что вы должны использовать другой URL-адрес - тот из OpenID Connect, который является расширением OAuth2 для аутентификации, а конечная точка userinfo указана в ее RFC .

https://openidconnect.googleapis.com/v1/userinfo

Правильная процедура - получить этот URL из документа OpenID Discovery ( Google doc )

https://accounts.google.com/.well-known/openid-configuration

и его атрибут userinfo_endpoint.

Изменение поведения конечной точки, которую вы использовали, может быть связано с отключением Google+. Но это только мое предположение.

...