gpt4 book ai didi

python - 使用带有 Tipfy 的任何 OpenID 进行身份验证

转载 作者:太空狗 更新时间:2023-10-29 20:23:22 24 4
gpt4 key购买 nike

我正在开发我的应用程序的身份验证部分,但我遇到了使用 OpenID 进行身份验证编码的问题。

我查看了 Tipfy 示例代码,但它似乎是在 OpenID 提供程序硬编码到 google 的假设下编写的。

我希望用户能够提供他们想要的任何 OpenID(这不是重点吗?)。

有没有人有显示用户使用用户提供的 OpenID 登录的示例代码?

最佳答案

Tipfy 是否允许任何 OpenID 身份验证?

如果您想使用 Tipfy 验证任何 OpenID Url,您无法做到开箱即用。
一个主要原因是因为 Tipfy 没有任何发现机制来从给定的 OpenID 用户 url 检索 OpenID 端点。

Tipfy 缺少什么?

Tipfy 不允许以下工作流程的点b.:
a. 用户提交 foo.blogspot.com
b. 框架检索 foo.blogspot.com 从 html 页面获取 OpenId 端点:

<link rel="openid.server" href="http://www.blogger.com/openid-server.g" />

c. 框架将用户重定向到远程登录页面。

Tipfy 真正提供了什么?

小费 openid extension* 仅提供 OpenIdMixin,它只是一个基类,可用于为特定平台(例如 Google)构建 OpenID 支持。
事实上,GoogleMixin 类扩展了 OpenIdMixin:

class GoogleMixin(OpenIdMixin, OAuthMixin):
"""A :class:`tipfy.RequestHandler` mixin that implements Google OpenId /
OAuth authentication.

并且它具有硬编码的 Google OpenID 端点:

_OPENID_ENDPOINT = 'https://www.google.com/accounts/o8/ud'

名称 OpenIdMixin 在其他类名称附近有点误导,例如 GoogleMixinFriendFeedMixinFaceBookMixin 等。 ETC;文档字符串应该更清楚地指定该类应该只作为基类扩展而不是直接使用。

使用 Tipfy 在您的应用程序中支持任何 OpenID url 需要什么?

您应该使用 Google App Engine 为提供 OpenID 支持而采用的相同消费者用户空间库here源代码和here一个活生生的例子。

具体来说,仔细查看 openid.consumer.consumer.py 文件以及 XRDS/OpenID 发现是如何发生的;我认为通过一些工作,您应该能够将这部分集成到 Tipfy OpenIdMixin 中。

* OpenID 代码移植自 tornado.auth

关于python - 使用带有 Tipfy 的任何 OpenID 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4851536/

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