Как получить access_token из googleapis?

#google-api #firebase-hosting #google-api-nodejs-client

#google-api #firebase-хостинг #google-api-nodejs-client

Вопрос:

Я пытаюсь получить токен доступа для доступа к API хостинга Firebase из учетной записи службы, как описано здесь .
Приведенный ниже код возвращает не access_token, а id_token, который не проходит проверку подлинности при попытке использовать API.
Что я делаю не так? Как я могу получить токен доступа?

 const { google } = require("googleapis");

var serviceAccount = require("../functions/src/services/serviceAccountKey.json");

async function getAccessToken() {
    try {
        const jwtClient = new google.auth.JWT(
            serviceAccount.client_email,
            null,
            serviceAccount.private_key,
            ["firebasehosting.googleapis.com"],
            null
        );
        const credentials = await jwtClient.authorize();
        console.log(credentials);
    } catch (error) {
        console.log(error);
    }
}

getAccessToken();
  

Он возвращает объект учетных данных:

 {
  access_token: undefined,
  token_type: 'Bearer',
  expiry_date: undefined,
  id_token: '...', // edited out
  refresh_token: 'jwt-placeholder'
}
  

Ответ №1:

Для протокола, я наконец-то получил это.
Моя область действия токена была недействительной: я должен использовать https://www.googleapis.com/auth/firebase
Допустимые области перечислены здесь