Noa*_*ith 9 python openid google-app-engine tipfy
我正在开发我的应用程序的身份验证部分,我遇到了使用OpenID编码身份验证的问题.
我查看了Tipfy示例代码,但似乎是在OpenID提供程序硬编码为google的假设下编写的.
我希望用户能够提供他们想要的任何OpenID(这不是重点吗?).
有没有人有任何示例代码显示用户使用用户提供的OpenID登录?
Tipfy是否允许任何OpenID身份验证?
如果您想使用Tipfy对任何OpenID Url进行身份验证,则无法开箱即用.
一个主要原因是因为Tipfy没有任何发现机制来从给定的OpenID用户URL检索OpenID端点.
什么Tipfy缺少?
Tipfy不允许b点.以下工作流程:
一.用户提交foo.blogspot.com
b.框架检索foo.blogspot.com从html页面获取OpenId端点:
<link rel="openid.server" href="http://www.blogger.com/openid-server.g" />
Run Code Online (Sandbox Code Playgroud)
C.框架将用户重定向到远程登录页面.
Tipfy真正提供的是什么?
Tipfy openid扩展*只是提供了OpenIdMixin一个基类,可用于构建对特定平台(例如Google)的OpenID支持.
确实,GoogleMixin课程延伸OpenIdMixin:
class GoogleMixin(OpenIdMixin, OAuthMixin):
"""A :class:`tipfy.RequestHandler` mixin that implements Google OpenId /
OAuth authentication.
Run Code Online (Sandbox Code Playgroud)
它的Google OpenID端点硬盘:
_OPENID_ENDPOINT = 'https://www.google.com/accounts/o8/ud'
Run Code Online (Sandbox Code Playgroud)
这个名字OpenIdMixin是附近像其他类的名字有点误导GoogleMixin,FriendFeedMixin,FaceBookMixin等等; 文档字符串应该更清楚,以指定该类应该只是作为基类扩展而不是直接使用.
使用Tipfy,您需要在应用程序中支持任何OpenID网址?
您应该使用Google App Engine 采用的相同的消费者用户区库来提供OpenID支持; 这里是源代码,这里是一个实例.
具体而言,仔细查看openid.consumer.consumer.py文件以及XRDS/OpenID发现的发生方式; 我认为,通过一些工作,您应该能够将此部分集成到Tipfy中OpenIdMixin.
*OpenID代码从tornado.auth移植