云函数的 OAuth2 身份验证

时间:2021-04-22 09:14:42

标签: google-cloud-platform google-cloud-functions

我需要从本地编写的 python 代码调用(OAuth - 客户端凭据流和授权代码流)一个 http 云函数。

我在 GCP 项目上创建了 OAuth 2.0 客户端 ID。

下面的代码用于获取访问令牌,但这是转到谷歌登录页面时出现错误。 我们可以帮助理解如何从本地 python 代码调用云函数吗?任何示例或指导都会有所帮助。

来自 google_auth_oauthlib 的导入流程 oauthcredential="client_secret.json" # OAuth 2.0 客户端 ID JSON launch_browser = True # 本地使用时,远程时使用 False appflow = flow.InstalledAppFlow.from_client_secrets_file(oauthcredential,scopes=['https://www.googleapis.com/auth/userinfo.profile'])

如果启动浏览器: appflow.run_local_server() 别的: appflow.run_console()

凭据 = appflow.credentials

1 个答案:

答案 0 :(得分:0)

要调用受保护的云函数,您需要身份令牌而不是访问令牌。您无法在代码中根据您自己的用户凭据生成 id 令牌(仅使用 gcloud 命令行),并且您使用服务帐户密钥文件来实现此目的(这并不理想,因为 {{3} }).

在您的代码中,设置引用您的服务帐户密钥文件路径的 GOOGLE_APPLICATION_CREDENTIALS 环境变量,然后您可以使用 I explain in this article 函数获取 id 令牌