gpt4 book ai didi

python - 如何使用google python oauth库来实现OpenID Connect?

转载 作者:行者123 更新时间:2023-11-30 22:11:40 31 4
gpt4 key购买 nike

我正在评估 Python App Engine Flex 环境中针对 G Suite 域中运行的应用的不同身份验证选项。

我正在尝试整理 OpenID Connect“服务器流程”说明 here怎样用google-auth-library-python实现一般 OAuth2 指令 here

我会跟踪事情直到4。交换访问 token 和 ID token 的代码,看起来像 flow.fetch_token,只不过它显示“对此请求的响应包含 JSON 数组中的以下字段”,并且它不仅包括访问 token ,但 id token 和其他东西。我确实看到了this patch to the library 。这是否意味着我可以使用一些 flow.fetch_token 创建一个 IDTokenCredentials (如何?),然后使用它来构建 OpenID Connect API 客户端(该 API 记录在哪里) )?那么验证 id token 呢?是否有一个单独的 python 库可以帮助解决这个问题,或者它是 API 库的一部分吗?

这一切都非常令人困惑。通过一些实际的“全面”示例代码可以解决很多问题,但我在互联网上没有找到任何东西,这让我认为(a)也许这不是一种可行的身份验证方法,或者(b )这么晚了,Python 库还没有跟上吗?不过,我更愿意在服务器上进行身份验证,而不是使用 Google 登录在客户端进行身份验证。

非常感谢任何建议或代码链接。

最佳答案

Google 的 python 库似乎包含一个用于 id token 验证的模块。这可以在 google.oauth2.id_token module 找到。 。验证后,它将返回解码后的 token ,您可以使用该 token 来获取用户信息。

from google.oauth2 import id_token
from google.auth.transport import requests

request = requests.Request()

id_info = id_token.verify_oauth2_token(
token, request, 'my-client-id.example.com')

if id_info['iss'] != 'https://accounts.google.com':
raise ValueError('Wrong issuer.')

userid = id_info['sub']

获取用户信息后,您应该遵循Authenticate the user section中描述的身份验证过程。 。

关于python - 如何使用google python oauth库来实现OpenID Connect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51350506/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com