python - 获取 Google OAuth2 凭据或从承载类型 token 刷新 token ?

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

我正在使用 python google api 客户端库来处理使用 google 的 platform.js 库从前端获取的 token_type:"Bearer"id_token

通过调用即可轻松完成 token 的验证

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)

此时我所拥有的只是一个不记名 token 。如何将其转换为凭据以便访问驱动器 API?

最佳答案

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

  • token
  • 刷新 token
  • token URI
  • 客户端 ID
  • 客户端 secret

以下是我如何访问用户的驱动器:

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)

您可以尝试将“Bearer Token”设置为“Token”,但我不确定它是否有效。这是“Credential”对象的文档 https://google-auth.readthedocs.io/en/latest/reference/google.oauth2.credentials.html

关于python - 获取 Google OAuth2 凭据或从承载类型 token 刷新 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54347813/

相关文章:

go - 使用 golang.org/x/oauth2 通过 golang Facebook 身份验证获取电子邮件数据

python - 用于 python 源的 Windows GUI 应用程序?

python - 如何使用python向eventhub发送多条消息

spring-security - 如何自定义 OAuth2 token 请求的授权 header

java - googlecredential没有这样的方法错误

node.js - 具有 2 条腿的 oauth 的 Google Drive file.update 返回正常,但无法按预期工作

javascript - 使用 Google Drive API 导航到文件夹

html - 以编程方式更改 Fusion Table 卡片布局

python - 如何优化这个 NumPy 代码?

python - 奇怪的重定向位置导致 urllib2 出现代理错误