Как вы используете Google API getRequestHeaders() для получения токена доступа OAuth2?
Я использую 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
модуль, на Stackru, и я не смог найти никакой документации для того, что составляет getRequestHeaders
метод. Я пробовал звонить getRequestHeaders
, но это не возвращает credentials
объект с токеном доступа.
Есть ли официальные документы о том, как getRequestHeaders
следует использовать в этой ситуации?
1 ответ
const accessToken=oAuth2Client.getAccessToken()
Это сработало для меня
Эта новая функция напрямую дает вам объект "Заголовки":
{ 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',
},
})