Frontend Аутентифицированный запрос Google Cloud Storage - PullRequest
0 голосов
/ 16 апреля 2020

Я использую корзину Google Cloud Storage для загрузки некоторых файлов моих пользователей. Я не хочу, чтобы они отображались как publi c, поэтому я создал служебную учетную запись, представляющую мое веб-приложение.

Я хочу знать, как сделать запрос с проверкой подлинности в Google Cloud Storage, не используя @google-cloud/storage npm пакет из моего веб-приложения.

Я знаю, что мне нужно включить Auhtorization: Bearer <token> в заголовки моих запросов, но как мне получить этот токен?

Я использую React на своем приложение внешнего интерфейса.

1 Ответ

2 голосов
/ 16 апреля 2020

У Google есть несколько библиотек, которые вы можете использовать. Вот один пример:

var { google } = require('googleapis')
const request = require('request')

// The service account JSON key file to use to create the Access Token
let privatekey = require('/path/service-account.json')

let scopes = 'https://www.googleapis.com/auth/devstorage.read_only'

let jwtClient = new google.auth.JWT(
    privatekey.client_email,
    null,
    privatekey.private_key,
    scopes
)

jwtClient.authorize(function(err, _token) {
    if (err) {
        console.log(err)
        return err
    } else {
        console.log('token obj:', _token)
        console.log('access token:', _token.access_token)

        headers: {
            "Authorization": "Bearer " + _token.access_token
        }

        // Make requests to Cloud Storage here
    }
})
...