Firebase Hosting REST API - вызывающий не имеет разрешения - PullRequest
0 голосов
/ 16 декабря 2018

Я позвонил по Hosting API, ссылаясь на Развертывание на вашем сайте с использованием Hosting REST API , но я получил следующий ответ:

{
  "error": {
    "code": 403,
    "message": "The caller does not have permission",
    "status": "PERMISSION_DENIED"
  }
}

Код:

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

var key = require('./service-account.json');

var jwtClient = new google.auth.JWT(
  key.client_email,
  null,
  key.private_key,
  "https://www.googleapis.com/auth/firebase.hosting",
  null
);

jwtClient.authorize(function(err, tokens) {
  if (err) {
    console.error(err);
    return;
  }
  console.log(tokens.access_token);
});

Оболочка:

$ node main.js
ya29.c.Elp0...

$ curl -H "Content-Type: application/json" \
       -H "Authorization: Bearer ya29.c.Elp0..." \
       -d '{
             "config": {
               "headers": [{
                 "glob": "**",
                 "headers": {
                   "Cache-Control": "max-age=1800"
                 }
               }]
             }
           }' \
  https://firebasehosting.googleapis.com/v1beta1/sites/[project-id]/versions
{
  "error": {
    "code": 403,
    "message": "The caller does not have permission",
    "status": "PERMISSION_DENIED"
  }
}

Идентификатор проекта service-account.json и идентификатор проекта в конечной точке API совпадают.

С другой стороны, я получил только успешный ответ, когда releases.list метод:

$ curl -H "Authorization: Bearer ya29.c.Elp0..." \
  https://firebasehosting.googleapis.com/v1beta1/sites/[project-id]/releases
{
  "releases": [
    ...
  ]
}

Любые советы о том, как решить эту проблему?

Спасибо.

Обновление:

Область действия была неправильной.

В документе область авторизации относится к firebase.hosting, firebase и cloud-platform, но я получил только успешный ответ при использовании https://www.googleapis.com/auth/cloud-platform.

...