python - Python - Google OAuth 从授权码生成令牌
问题描述
我有一个 python 谷歌云函数,它接收 OAuth 授权代码作为参数。我想将此代码交换为可用于验证服务对象的令牌。
代码在外部生成并作为字符串参数传递给此函数。
我查看了google_auth_oauthlib.flow的文档。但它期望创建一个流对象来处理身份验证。就我而言,我只有代码作为结果。
如何将授权码作为字符串交换为令牌?
解决方案
除了授权代码之外,您还需要更多信息。谷歌关于如何将授权码交换为访问令牌的文档在这里:刷新和访问令牌的交换授权码。
具体来说,除了code
,您还需要:
client_id
:从 API 控制台 [凭据页面] |( https://console.developers.google.com/apis/credentials ) 获取的客户端 ID。client_secret
:从 API Console Credentials 页面获取的客户端密码。grant_type
:authorization_code
redirect_uri
: 初始授权请求中使用的重定向 URI。如果这是针对可能是urn:ietf:wg:oauth:2.0:oob
(针对带外)的 CLI(或类似)
其中大多数 ( client_id
, client_secret
, grant_type
) 是静态的,因此您可以将它们用作云功能中的配置。如果redirect_uri
您确定生成code
.
有了这些信息,您应该能够在链接示例中创建 Flow 对象并获取令牌。
作为将所有这些配置存储在云函数中的替代方法,您可以使用托管 OAuth 服务,如Xkit(我工作的地方),它处理授权过程并允许您从任何地方(包括云函数)检索访问令牌,只需一个 API钥匙。
推荐阅读
- javascript - React - 在 Map() 方法中对表列进行排序
- android-studio - 单击图像时在 Firebase 存储上加载预览时出错
- html - 如何制作 3D 图像的错觉
- python - “Airflow 任务运行” & Jobs 继续运行而没有执行任何 DAG
- algorithm - 建议资源预留的最大延长时间的算法
- maven - mvn jgitflow release finish - 子模块中的冲突
- node.js - Sequelize OP -> TypeError:无法读取未定义的属性“like”
- c - 如何通过函数计算所需时间?
- r - 我怎样才能把这张桌子做成一张整洁的桌子
- .net - 在 .NET Core 3.1 中使用 UTF-8 与 UTF-16 读取 XML 文件