Код авторизации Google - получение токена доступа возвращает "unauthorized_client" - PullRequest
0 голосов
/ 28 июня 2018

У меня проблемы с обменом кода авторизации Google для доступа и обновления токенов.

Используя клиентскую библиотеку googleapis nodejs, я могу сгенерировать аутентификационный URL и успешно получить аутентификационный код, вызвав URL. Проблема возникает, когда я пытаюсь обменять этот код авторизации на моем сервере.

Я выполняю POST-вызов на https://www.googleapis.com/oauth2/v3/token' со следующими параметрами:

tokenData = {
    code: [code from client],
    client_id: [client ID used to get the auth code client-side],
    client_secret: [client secret associated with the ClientID],
    grant_type: 'authorization_code',
    redirect_uri: 'postmessage'
};

После этого звонка я просто получаю сообщение:

{error=unauthorized_client, error_description=Unauthorized} 

Я трижды проверил, что ClientID, используемый клиентом для получения кода авторизации, совпадает с кодом на сервере, и что URL-адрес клиента был добавлен к авторизованному источнику JavaScript в консоли Google.

Я провел обширный поиск в Google, чтобы попытаться найти решение, но, похоже, мало документации о том, что может быть причиной ошибки "unauthorized_client". Буду признателен за любую оказанную помощь.

1 Ответ

0 голосов
/ 29 июня 2018

После долгих исследований я смог найти решение своей проблемы.

Как указано в этом документе , в частности, в части D:

Клиент запрашивает токен доступа у авторизации конечная точка токена сервера, включая код авторизации получил в предыдущем шаге. Делая запрос, клиент аутентифицируется на сервере авторизации. клиент включает в себя URI перенаправления, используемый для получения авторизации код для проверки.

Значение redirect_uri, указанное в вызове для получения кода авторизации , должно соответствовать значению redirect_uri, отправляемому для обмена. Надеюсь, это кому-нибудь поможет.

...