Использовать Google OAuth (неявный поток) access_token для запроса API Google с сервера с клиентом google-api- go? - PullRequest
0 голосов
/ 14 марта 2020

Я новичок Golang и работаю над проектом, который использует G Suite в качестве IDP для управления пользователями определенного домена / организации c и GCP K8 для взаимодействия на стороне сервера с микро-сервисами Google API Google Drive. и другие внутренние службы / службы Google.

Мы выбрали неявный поток на стороне клиента , поскольку мы используем SPA на клиенте, но в дополнение к доступу к Google Drive API непосредственно из клиент, мы передаем информацию на сервер и проверяем пользователей id_token на стороне сервера для аутентификации нашего приложения. Мы также хотели бы использовать скрытый пользовательский OAuth access_token для доступа к API Google Диска с нашего сервера, используя разрешения доступа IAM каждого пользователя для каждого запроса, но кажется, что google-api- go -client пакеты могут использовать только поток на стороне сервера .

Можно ли использовать неявный OAuth-доступ на стороне клиента на сервере с Google Диски Go пакет и другие клиентские библиотеки? Я углубился в использование WithTokenSource (ниже фрагмента), но не могу понять, как избежать всего потока на стороне сервера и напрямую установить строку токена пользователя (Bearer {{access_token}}) для запроса driveService.

driveService, err := drive.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
...