OpenID Python直接登录脚本

OpenID Python直接登录脚本,python,django,authentication,openid,Python,Django,Authentication,Openid,我使用的是Python/Django nonrel。我希望创建一个网站,它可以使用脚本(python代码)使用一对OpenID url/密码验证/登录用户,而不是手动登录。这可行吗?谢谢。是的,可以使用脚本中的OpenID进行身份验证,不过如果您不习惯OpenID工作流,这比您想象的要复杂一些 请记住,OpenID是一种三方身份验证机制。涉及的三方是: OpenID最终用户:您的Python脚本 OpenID使用者:为资源提供服务的web服务器 OpenID身份提供程序:进行身份验证的地方(例如

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

是的,可以使用脚本中的OpenID进行身份验证,不过如果您不习惯OpenID工作流,这比您想象的要复杂一些

请记住,OpenID是一种三方身份验证机制。涉及的三方是:

  • OpenID最终用户:您的Python脚本
  • OpenID使用者:为资源提供服务的web服务器
  • OpenID身份提供程序:进行身份验证的地方(例如MyOpenID、Yahoo等)
  • 重要提示:OpenID工作流的全部目的是,您永远不会与提供资源的web服务器交换密码(#2)!您必须登录到另一个网站(如MyOpenID),以证明您的身份

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


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

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


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

    OpenID标识URL不是用户名。没有URL/密码验证。你想做什么?谢谢你的回答。我试图允许一个脚本(http请求,而不是人类用户)使用他的openid/密码访问我的站点,如果经过验证,则获取该用户存储在站点中的文件。还有什么我可以做的吗?谢谢。嗨,安德烈,非常感谢你的帮助。我要试试机械化。有没有可能找到一个类似的例子?如果不是的话,我会试着逐渐弄清楚整个事情。