Авторизуйте учетную запись службы Google, используя AWS Lambda / API Gateway - PullRequest
0 голосов
/ 14 января 2020

Мой express сервер имеет учетные данные. json содержит учетные данные для учетной записи службы Google. Эти учетные данные используются для получения jwt от Google, и этот jwt используется моим сервером для обновления листов Google, принадлежащих учетной записи службы.

var jwt_client = null;

// load credentials form a local file
fs.readFile('./private/credentials.json', (err, content) => {
    if (err) return console.log('Error loading client secret file:', err);
    // Authorize a client with credentials, then call the Google Sheets API.
    authorize(JSON.parse(content));
});

// get JWT
function authorize(credentials) {
    const {client_email, private_key} = credentials;
    jwt_client = new google.auth.JWT(client_email, null, private_key, SCOPES); 
}

var sheets = google.sheets({version: 'v4', auth: jwt_client });

// at this point i can call google api and make authorized requests

Проблема заключается в том, что я пытаюсь перейти с узла / express до npm без сервера / aws. Я использую тот же код, но получаю 403 - запрещено.

 errors:
   [ { message: 'The request is missing a valid API key.',
       domain: 'global',
       reason: 'forbidden' } ] }

Исследования показали мне много вещей, включая: AWS Cognito , хранение учетных данных в переменных среды , пользовательские авторизаторы в шлюзе API . Все это кажется мне жизнеспособным, но я новичок в AWS, поэтому любые советы о том, какое направление выбрать, будут высоко оценены.

...