41

我正在开发一个使用 OpenID 对用户进行身份验证的网站(在 Django 中)。由于我目前仅在本地计算机上运行,​​因此无法使用网络上的 OpenID 提供程序之一进行身份验证。所以我想我需要运行一个本地 OpenID 服务器,它只允许我输入用户名,然后将其传递回我的主应用程序。

这样的 OpenID 开发服务器是否存在?这是最好的方法吗?

4

7 回答 7

15

The libraries at OpenID Enabled ship with examples that are sufficient to run a local test provider. Look in the examples/djopenid/ directory of the python-openid source distribution. Running that will give you an instance of this test provider.

于 2008-10-06T17:22:39.190 回答
9

我用myopenid.com测试没有问题。我以为在我的本地机器上测试会有问题,但它确实有效。(我将 ASP.NET 与 DotNetOpenId 库一起使用)。

“领域”和返回 url 必须包含端口号,例如“ http://localhost:93359 ”。

我认为它可以正常工作,因为提供商会进行客户端重定向。

于 2008-10-05T15:29:43.083 回答
3

我也在研究这个。我也在开发一个可能使用 Open Id 的 Django 项目。如需参考,请查看:

希望这里有人解决了这个问题。

于 2008-10-05T14:20:57.840 回答
3

我现在正在使用phpMyID在 StackOverflow 进行身份验证。生成标准的 HTTP 身份验证领域并完美运行。它应该正是您所需要的。

于 2008-10-05T14:22:37.477 回答
3

您可能可以使用 django OpenID 库来编写一个提供程序来进行测试。有一个总是验证和一个总是失败。

于 2008-10-05T15:24:31.330 回答
1

为什么不在本地机器上运行 OpenID 提供程序?

如果您是 .Net 开发人员,Google Code上有一个用于 .Net 的 OpenID 提供程序库。这使用标准的 .Net 配置文件提供程序机制并用 OpenID 层包装它。我们正在使用它将 OpenID 添加到我们的自定义身份验证引擎中。

如果您使用另一种语言/平台工作,这里的 OpenID 社区站点提供了许多 OpenID 实现。

于 2008-10-05T14:48:18.173 回答
1

您不应该在针对自己的机器进行开发时遇到问题。你遇到了什么错误?

OpenID 提供者会要求您授予您的网站(在本例中为http://localhost:8000或类似的)访问您的身份的权限。如果您单击确定,那么它将重定向您该网址。我从来没有遇到过livejournal的问题,我希望myopenid.com也能正常工作。

如果您在本地开发时遇到问题,我建议您遇到的问题与 url 是 localhost 无关,而是与其他问题无关。如果没有错误消息或问题描述,就不可能多说。

编辑:事实证明,雅虎与我遇到的其他 OpenID 提供商的做法不同,并且不允许重定向到 IP 地址、域名中没有正确 tld 的站点以及在 80 或 443 以外的端口上运行的站点。请参见此处来自 Yahoo 开发人员的关于此主题的帖子。这篇文章提供了一种解决方法,但我建议 myopenid.com 的开发比在 Yahoo 周围工作或运行您自己的提供商要简单得多。

于 2008-10-05T16:40:16.933 回答