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