Получение токена доступа Google OAuth от id_token - PullRequest
0 голосов
/ 15 декабря 2018

Я использую аутентификацию Google с опцией redirect_uri (чтобы избежать всплывающих окон).Когда пользователь входит в Chrome, я могу получить токен доступа, но в Safari (например) я не могу понять, как получить токен доступа.Строка запроса перенаправления включает id_token, который я могу успешно проверить с помощью этой конечной точки:

https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123

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

Могу ли я получить токен доступа от id_token?Если так, то как.Я не могу найти никаких примеров.

Пояснение: я не пытаюсь аутентифицировать свое приложение, я получаю id_token от пользователя, проходящего аутентификацию через Google, входящего в интерфейс.

1 Ответ

0 голосов
/ 16 декабря 2018

Только аутентификация пользователей

Если вы не используете API-интерфейсы Google и просто используете токен для аутентификации пользователей, вам нужно только подтвердить id_token и не использовать токен доступа.id_token - это концепция OpenID Connect, используемая для информирования клиента (вашего приложения) о базовой информации о текущем вошедшем в систему пользователе.

Для проверки id_token вы можете использовать документацию описание или этот связанный вопрос о Stackoverflow.

Использование API Google от имени ваших пользователей

Если вы хотите использовать GoogleОднако API-интерфейсы от имени пользователя вам понадобятся access_token, так как id_token обычно не используются для аутентификации с бэкэндами.Чтобы получить токен доступа, пользователю необходимо авторизовать ваше приложение, чтобы иметь возможность доступа к API Google от своего имени.Если вы используете библиотеку gapi, то процесс выполнения вызовов API Google, скорее всего, в основном скрыт, но у него где-то должен быть токен доступа.

В этой документации Google описывается, что происходит за кулисами..

https://developers.google.com/identity/protocols/OAuth2

Если вы хотите получить доступ к API Google от имени своих пользователей в бэкэнде, возможно, вам придется выполнить другой процесс, чем тот, который использует ваш веб-интерфейс.Тип ответа в запросах на авторизацию определяет, какой процесс используется (поэтому я спросил, какой тип ответа используется).Но библиотека Javascript, стоящая за пакетом gapi npm, похоже, поддерживает его, хотя, возможно, она не будет легко доступна при использовании.

https://developers.google.com/api-client-library/javascript/reference/referencedocs#googleusergetauthresponseincludeauthorizationdata

Также проверьте автономные параметры,может это то что ты ищешь?Если это не помогает, вы все равно можете обратиться к странице документации Oauth2, на которую я ссылался ранее, для ссылок на другие опции / другие языки для получения токенов аутентификации.

...