OpenID Python直接登录脚本

时间:2012-04-02 03:54:02

标签: python django authentication openid

我正在使用Python / Django-nonrel。我希望创建一个网站,可以使用脚本(python代码)验证/登录用户的一对OpenID网址/密码,而不是手动登录。这可行吗?感谢。

1 个答案:

答案 0 :(得分:1)

是的,可以使用脚本中的OpenID进行身份验证,尽管如果您不习惯OpenID工作流程,它可能会比您想象的要复杂一些。

只记得OpenID是一种三方认证机制。涉及的三方是:

  1. OpenID最终用户:您的Python脚本
  2. OpenID Consumer:提供资源的Web服务器
  3. OpenID身份提供商:您进行身份验证的地方(例如MyOpenID,Yahoo等)
  4. 重要事项:OpenID工作流程的全部目的是,您永远不会与提供资源的Web服务器交换密码(#2)!您必须登录其他网站(例如MyOpenID)才能证明您的身份。

    因此,将OpenID工作流作为脚本的一部分来实现的关键是使用一个Web自动化工具来管理cookie并遵循重定向。 Mechanize for Python] 1是一个高级工具,可以方便地实现大多数典型的User Agen(浏览器)逻辑。


    请记住,一旦Web服务器(#2)将用户代理(#1)重定向到身份提供商(#3)网站,就会涉及一些身份提供程序脚本。此特定于提供程序的脚本通常用于输入用户名/密码组合以证明您拥有标识URL。

    完成此操作后,身份提供商(#3)会将您的用户代理重定向回Web服务器(#2),此时Web服务器将为该资源提供服务(或将您重定向到为其提供服务的URL请求的资源)。

    因此,假设您有一个实现大多数典型用户代理逻辑的高级对象(例如重定向和cookie),其余部分应该相当简单。