获取Google OAuth2凭证或从Bearer类型令牌刷新令牌?

时间:2019-01-24 13:30:20

标签: python oauth-2.0 google-drive-api google-oauth2

我正在使用python google api客户端库来处理id_token中的token_type:"Bearer",这是使用Google的platform.js库从前端获得的。

调用

即可轻松完成令牌的验证
google.oauth2.id_token.verify_oauth2_token(
  request.POST['bearer_token'],
  google.auth.transport.requests.Request(),
  client_id )

现在,我要访问用户的Google驱动器(完全访问权限)。到目前为止,我了解到的是,要构建服务对象,我们需要像这样的凭据对象。

drive_service = build('drive', 'v3', credentials=credentials)

这时我所拥有的只是不记名令牌。如何将其转换为凭据,以便访问驱动器API?

1 个答案:

答案 0 :(得分:2)

凭据对象来自“ google.oauth2.credentials”,要设置凭据对象,您需要了解某些值:

  • 令牌
  • 刷新令牌
  • 令牌URI
  • 客户ID
  • 客户秘密

这是我访问用户驱动器的方式:

credentials = Credentials(
            token=token,
            refresh_token=refresh_token,
            token_uri="https://www.googleapis.com/oauth2/v3/token", 
            client_id=client_id,
            client_secret=client_secret,
        )

drive_service = build('drive', "v3", credentials=credentials)

您可以尝试将“承载者令牌”设置为“令牌”,但是我不确定它是否会起作用。这是“凭据”对象https://google-auth.readthedocs.io/en/latest/reference/google.oauth2.credentials.html

的文档