任何人都可以用这里提到的openid库来解释我的步骤。 我已经在我的程序中导入了janrain openid的所有包,但我无法理解实际的代码流。
这个过程基本上应该遵循这个计划:
在您网站的某处添加OpenID登录字段。在该字段中输入OpenID并提交表单后,它应向您的站点发出包含该OpenID URL的请求。
首先,应用程序应该为具有每用户状态的会话实例化一个Consumer,并为共享状态存储。使用选择的商店。
接下来,应用程序应该在Consumer实例上调用'begin'方法。此方法采用OpenID URL。 begin方法返回一个AuthRequest对象。
接下来,应用程序应该在AuthRequest对象上调用redirectURL方法。参数return_to是OpenID服务器在尝试验证其身份后将用户发回的URL。领域参数是URL(或URL模式),用于在用户授权时向用户标识您的网站。将重定向发送到用户浏览器的结果URL。
这是身份验证过程的前半部分。该过程的后半部分是在用户的OpenID Provider向用户的浏览器发送重定向回到您的站点以完成登录后完成的。
如果发生这种情况,用户将通过上面的redirectURL调用的return_to URL给出的URL与您的站点联系。该请求将由OpenID提供程序将多个查询参数添加到URL,作为完成请求所需的信息。
使用与以前相同的会话和存储获取Consumer实例,并调用其complete方法,传入所有收到的查询参数。
该方法可能有多种可能的返回类型。这些表明登录是否成功,并包括适合其类型的任何其他信息。
答案 0 :(得分:0)
web.py包含一个webopenid module,它使用Janrain实现一个完整的,基本的OpenID身份验证系统。使用包含的host
类,您可以将OpenID支持的身份验证添加到项目中。但是,要实际从OpenID提供程序中提取有趣的数据,您需要添加AX和SReg请求/响应处理。