首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用google python oauth库来实现OpenID连接?

如何使用google python oauth库来实现OpenID连接?
EN

Stack Overflow用户
提问于 2018-07-16 01:20:50
回答 1查看 1.1K关注 0票数 2

我正在评估python App Engine flex环境中不同的身份验证选项,用于在G Suite域中运行的应用程序。

我正在尝试将OpenID连接“服务器流”指令heregoogle-auth-library-python如何实现通用的OAuth2指令here结合起来。

我一直跟踪到JSON4.访问令牌和ID令牌的交换代码,它看起来像flow.fetch_token,除了它说"response to this request包含以下字段在数组中“,它不仅包括访问令牌,还包括id令牌和其他内容。我确实看到this patch to the library了。这是否意味着我可以使用一些flow.fetch_token来创建IDTokenCredentials (如何创建?)然后使用它来构建一个OpenID连接应用程序接口客户端(该应用程序接口的文档记录在哪里)?关于验证id标记,有没有一个单独的python库来帮助它,或者它是API库的一部分?

这一切都非常令人困惑。通过一些实际的“从汤到坚果”的示例代码就可以解决很多问题,但我在互联网上没有找到任何东西,这让我想:(a)也许这不是一种可行的身份验证方式,或者(b)它是如此之新,以至于python库还没有跟上?然而,我更愿意在服务器上进行身份验证,而不是在客户端使用Google登录。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-16 13:04:36

看起来Google的python库包含了一个id令牌验证模块。这可以在google.oauth2.id_token module上找到。验证通过后,它将返回解码后的令牌,您可以使用该令牌来获取用户信息。

代码语言:javascript
运行
复制
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中所述的身份验证流程进行操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51350506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档