我构建了一个烧瓶应用程序,该应用程序使用flask_dance
's google blueprint
我想使用该用户的授权来通过GCS Client
访问GCS如何转换
requests_oauthlib.OAuth2Session
(由flask_dance
返回)
到google.auth.credentials.Credentials
(由Google Cloud libs所需要)中来实现?
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'
}
答案 0 :(得分:1)
最简单的方法是提取访问令牌并使用它创建新的凭据。
// 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 Cloud Storage Scope。您将需要修改make_google_blueprint
以包括Cloud Storage的范围。例子:
https://www.googleapis.com/auth/devstorage.read_only
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/devstorage.full_control