【问题标题】:Python OpenID Library UsagePython OpenID 库使用
【发布时间】: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

标签: python openid


【解决方案1】:

web.py 包括一个webopenid module,它使用 Janrain 实现了一个完整的(如果是基本的)OpenID 身份验证系统。使用包含的 host 类,您可以将 OpenID 支持的身份验证添加到您的项目中。但是,要真正从 OpenID 提供程序中提取有趣的数据,您需要添加 AX 和 SReg 请求/响应处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多