конвертировать запросы OAuth2Session в Google oauth2 учетные данные - PullRequest
0 голосов
/ 27 июня 2019

Я создал приложение-колбу, которое авторизует пользователя с помощью flask_dance google blueprint

Я хотел бы использовать авторизацию этого пользователя для доступа к GCS с помощью GCS Client

Как я могу конвертировать requests_oauthlib.OAuth2Session (возвращается flask_dance) на google.auth.credentials.Credentials (необходимый для облачных библиотек Google), который сделал бы это возможным?

токен в OAuth2Session выглядит так:

{
    'id_token': 'eyJh....',
    'access_token': 'ya29.Glw....',
    'expires_at': 1561605616.261379,
    'expires_in': 3573.162272,
    'scope': [
        'https://www.googleapis.com/auth/userinfo.email',
        'openid',
        'https://www.googleapis.com/auth/cloud-platform',
        'https://www.googleapis.com/auth/userinfo.profile'
    ],
    'token_type': 'Bearer'
}

1 Ответ

1 голос
/ 27 июня 2019

Самое простое - извлечь токен доступа и создать с ним новые учетные данные.

// Grab the Access Token from the OAuth Flow
access_token = resp.json()["access_token"]

// Create new credentials with the Access Token
credentials = google.auth.credentials.Credentials(access_token)

Примечание. В поток OAuth необходимо включить область облачного хранения Google.Вам нужно будет изменить make_google_blueprint, чтобы включить область для облачного хранилища.Примеры:

https://www.googleapis.com/auth/devstorage.read_only
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/devstorage.full_control
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...