我正在开发我的应用程序的身份验证部分,我遇到了使用OpenID进行编码身份验证的问题。使用任何OpenID与Tipfy身份验证
我已经看过Tipfy示例代码,但它似乎是在假设OpenID提供程序是硬编码到Google的情况下编写的。
我希望用户能够提供他们想要的任何OpenID(是不是那个点?)。
有没有人有任何示例代码显示用户使用用户提供的OpenID登录?
我正在开发我的应用程序的身份验证部分,我遇到了使用OpenID进行编码身份验证的问题。使用任何OpenID与Tipfy身份验证
我已经看过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" />
℃。该框架将用户重定向到远程登录页面。
Tipfy真的提供什么?
的Tipfy openid扩展*只需提供OpenIdMixin
,这只是一个基类建设OpenID的支持,以特定的平台很有用(谷歌为例)。
事实上,GoogleMixin
类扩展OpenIdMixin
:
class GoogleMixin(OpenIdMixin, OAuthMixin):
"""A :class:`tipfy.RequestHandler` mixin that implements Google OpenId/
OAuth authentication.
它具有谷歌OpenID端点硬绳:
_OPENID_ENDPOINT = 'https://www.google.com/accounts/o8/ud'
名称OpenIdMixin
有点接近其他类的名字误导像GoogleMixin
,FriendFeedMixin
,FaceBookMixin
等等; docstring应该更加清楚,指定该类应该仅作为基类扩展,而不能直接使用。
你需要什么来支持你的应用程序中使用Tipfy的任何OpenID网址?
您应该使用Google App Engine已经采用的相同的消费者用户库提供OpenID支持; here源代码和here一个实例。
具体来说,仔细看看openid.consumer.consumer.py
文件以及XRDS/OpenID发现是如何发生的;我认为通过一些工作,你应该能够将这部分整合到Tipfy OpenIdMixin
中。
*中的OpenID码从tornado.auth
谢谢,它似乎是一个很好的解释 – 2011-02-06 23:10:45
移植该代码仅仅是一个例子。您只需要允许用户通过表单指定其OpenID提供程序的端点URL,并从POST中获取该值。这只是一个字符串。
你在看什么样的代码? – Gareth 2011-01-31 13:45:17
@Gareth:http://www.tipfy.org/wiki/extensions/auth/openid/ – 2011-01-31 14:16:46