Как вы используете Google API getRequestHeaders () для получения токена доступа OAuth2? - PullRequest
0 голосов
/ 01 ноября 2018

Я использую библиотеку googleapis npm для авторизации, используя OAuth2 для доступа к моей учетной записи Gmail для отправки электронных писем. Я использую следующий код (TypeScript), чтобы сделать это:

const oAuth2Client = new google.auth.OAuth2(
  googleConfig.clientId,
  googleConfig.clientSecret
);

oAuth2Client.setCredentials({
  refresh_token: googleConfig.refreshToken
});

const accessTokenRetVal = (await oAuth2Client.refreshAccessToken()).credentials.access_token;
const accessToken = accessTokenRetVal || '';

Этот код работает, но я получаю следующее сообщение:

(node:8676) [google-auth-library:DEP007] DeprecationWarning: The `refreshAccessToken` method has been deprecated, and will be removed in the 3.0 release of google-auth-library. Please use the `getRequestHeaders` method instead.

Я искал в Google, на GitHub модуль googleapis, в StackOverflow, и мне не удалось найти какую-либо документацию для того, что составляет метод getRequestHeaders. Я пытался вызвать getRequestHeaders, но он не возвращает объект credentials с токеном доступа.

Существуют ли официальные документы о том, как getRequestHeaders следует использовать в этой ситуации?

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

const accessToken=oAuth2Client.getAccessToken()

Это сработало для меня

0 голосов
/ 05 ноября 2018

Эта новая функция напрямую дает вам объект «Заголовки»:

{ Authorization: 'Bearer xxxxxxxxx' }

Таким образом, вы можете напрямую использовать его в качестве объекта заголовка:

const authHeaders = await this.auth.getRequestHeaders();
yourfetchlibrary.get('https://......', {
            headers: authHeaders,
        })

Или извлеките авторизационную часть:

const authHeaders = await this.auth.getRequestHeaders();
yourfetchlibrary.get('https://......', {
            headers: {
                'Authorization': authHeaders.Authorization,
                'Content-Type': 'application/json',
            },
        })
...