小能豆

使用任何 OpenID 通过 Tipfy 进行身份验证

py

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

我看过 Tipfy 示例代码,但它似乎是在假设 OpenID 提供程序对 google 进行硬编码的情况下编写的。

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

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


阅读 10

收藏
2024-11-12

共1个答案

小能豆

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 真正提供什么?

Tipfy openid扩展*只是提供了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的名称有点误导;文档字符串应该更清楚地指定该类应该作为基类进行扩展而不是直接使用。GoogleMixin``FriendFeedMixin``FaceBookMixin

2024-11-12