Nodejs GoogleAPI как аутентифицировать JWT-клиента только с помощью запроса GET

#node.js #google-api

#node.js #google-api

Вопрос:

известно, что GoogleAPI в значительной степени построен на запросах GET, вспомогательном node.js модуль googleapis, по-видимому, просто позволяет отправлять эти запросы GET более простым способом, например:

 fetch("https://www.googleapis.com/drive/v3/files/MYID/export?mimeType=text/plain",
    {
        method:"GET",
        headers: {
            'Accept-Encoding': 'gzip',
            'User-Agent': 'google-api-nodejs-client/0.7.2 (gzip)',
            Authorization:t.token_type  " "  t.access_token,
            Accept:"application/json"
        }
    })
        .then(res => res.text())
        .then(body => console.log(body));
  

выполняет то же самое, что и при использовании их встроенного метода:

 var drive = google.drive("v3");
    drive.files.export({
        auth:j,
        fileId:"1oBL8sBylvODW1Md0gjXf2UgwBHtb6aRcgyGOYr0kRvY"
    }, (e,r) => {
        if(e) console.log(e);
        else {
            console.log(r,"data:::::",r.data);
        }
    });
  

Итак, вопрос: Когда я проверяю JWT-клиент в nodejs, используя пользовательский сервисный ключ, я делаю это:

 var google = require("googleapis").google,
    creds = require("./mycreds.json"),
    fetch = require("node-fetch");


    var j = new google.auth.JWT(
        creds.client_email,
        null,
        creds.private_key,
        [
            "https://www.googleapis.com/auth/drive"
        ]
    );
    console.log(google.auth.JWT, "END this");

j.authorize((r,t) => {
    doOther(t);
});
  

Я подозреваю, что это, как и любая другая часть Google API, с которой я сталкивался до сих пор, просто более простой способ отправить запрос GET на определенный URL с определенными заголовками (содержащий ключ авторизации).

Вопрос: Что именно этот URL и заголовки необходимы для выполнения того же, что и j.authorize ? Я не смог найти, где искать в ссылке.

ПОДСКАЗКА: из строки 159 в jwtclient.js файл:

 createGToken() {
        if (!this.gtoken) {
            this.gtoken = new gtoken_1.GoogleToken({
                iss: this.email,
                sub: this.subject,
                scope: this.scopes,
                keyFile: this.keyFile,
                key: this.key,
                additionalClaims: this.additionalClaims
            });
        }
        return this.gtoken;
    }
  

все еще смотрю на gtoken_1.GoogleToken и т.д..