【发布时间】:2010-01-21 10:31:03
【问题描述】:
谁能解释我使用此处提到的 openid 库的步骤。 我已经在我的程序中导入了所有 janrain openid 包,但我无法理解实际的代码流。
流程应该基本按照这个计划进行:
在您网站的某处添加一个 OpenID 登录字段。在该字段中输入 OpenID 并提交表单后,它应该向您的站点发出请求,其中包含该 OpenID URL。
首先,应用程序应该为每个用户的状态实例化一个消费者,并为共享状态存储一个会话。使用选择的商店。
接下来,应用程序应该调用消费者实例的“开始”方法。此方法采用 OpenID URL。 begin 方法返回一个 AuthRequest 对象。
接下来,应用程序应该调用 AuthRequest 对象的 redirectURL 方法。参数 return_to 是 OpenID 服务器在尝试验证用户身份后将其发送回的 URL。 realm 参数是在用户授权时向用户标识您的网站的 URL(或 URL 模式)。将结果 URL 的重定向发送到用户的浏览器。
这是身份验证过程的前半部分。该过程的后半部分在用户的 OpenID 提供程序向用户的浏览器发送重定向回您的站点以完成登录后完成。
发生这种情况时,用户将通过上述 URL 与您的网站联系,该 URL 作为 return_to URL 提供给上述 redirectURL 调用。该请求将有几个查询参数由 OpenID 提供程序添加到 URL,作为完成请求所必需的信息。
获取具有相同会话和存储的消费者实例,并调用其完成方法,传入所有接收到的查询参数。
该方法有多种可能的返回类型。这些指示登录是否成功,并包括适合其类型的任何附加信息。
【问题讨论】:
-
嗯,您的问题中已经很好地描述了流程:) 哪些步骤令人困惑?你用的是什么网络框架?
-
我正在使用 python_openid2.4 库并想为我的网站制作一个 openid 插件,这次只支持用户名和密码。我只想使用那个库并导入到我的程序中。我怎样才能做到这一点。你能解释一下plzzzzzz