我正在开发一个使用OpenID对用户进行身份验证的网站(在Django中)。由于我目前只在本地计算机上运行,因此无法使用Web上的某个OpenID提供程序进行身份验证。所以我想我需要运行一个本地OpenID服务器,只需让我输入一个用户名,然后将其传递回我的主应用程序。
这样的OpenID开发服务器是否存在?这是最好的方式吗?
答案 0 :(得分:15)
OpenID Enabled处的库提供了足以运行本地测试提供程序的示例。查看python-openid源代码分发的examples / djopenid /目录。运行它将为您提供this test provider的实例。
答案 1 :(得分:9)
使用myopenid.com进行测试时没有问题。我以为在我的本地机器上测试会有问题,但它确实有效。 (我正在使用ASP.NET和DotNetOpenId库。)
“领域”和返回网址必须包含“http://localhost:93359”等端口号。
我认为它工作正常,因为提供商进行了客户端重定向。
答案 2 :(得分:3)
答案 3 :(得分:3)
我现在正在使用phpMyID在StackOverflow进行身份验证。生成标准的HTTP身份验证领域并且运行良好。它应该正是你所需要的。
答案 4 :(得分:3)
您可以使用django OpenID库编写供测试的提供程序。有一个总是在验证,一个总是失败。
答案 5 :(得分:1)
为什么不从本地计算机运行OpenID提供程序?
如果您是.Net开发人员,则{。{3}}有.Net的OpenID提供程序库。它使用标准的.Net配置文件提供程序机制,并使用OpenID层包装它。我们正在使用它将OpenID添加到我们的自定义身份验证引擎中。
如果您使用其他语言/平台,则可以从OpenID社区网站Google Code获得许多OpenID实现。
答案 6 :(得分:1)
您不应该在自己的机器上进行开发时遇到问题。你得到什么错误?
OpenID提供商会要求您为您的网站(在这种情况下为http://localhost:8000或类似网站)提供对您身份的访问权限。如果单击“确定”,则会重定向该URL。我从来没有遇到livejournal的问题,我希望myopenid.com也可以。
如果您在本地开发时遇到问题,我建议您遇到的问题与本地主机的URL无关,而是与其他内容无关。没有错误信息或问题描述,就不可能多说。
编辑:事实证明,雅虎做的事情与我遇到的其他OpenID提供商的做法不同,不允许重定向到IP地址,域名中没有正确tld的站点以及运行的域名在80或443以外的端口上。请参阅here以获取雅虎开发人员关于此主题的帖子。 This post提供了解决方法,但我建议,对于开发myopenid.com比在雅虎工作或运行自己的提供商要简单得多。