【问题标题】:How do you develop against OpenID locally您如何在本地针对 OpenID 进行开发
【发布时间】:2010-09-15 09:10:12
【问题描述】:

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

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

【问题讨论】:

    标签: python django openid


    【解决方案1】:

    OpenID Enabled 的库附带的示例足以运行本地测试提供程序。查看 python-openid 源代码分发的示例/djopenid/ 目录。运行它会给你一个this test provider的实例。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 我今天遇到了一个问题,当时我的互联网连接中断了。我无法登录我正在开发的应用程序。我猜这是拥有本地 openId 服务器的原因之一。
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

          • 这看起来将是最简单的方法,因为我已经在运行 Django。我只是希望有一个不需要配置的简单命令行应用程序。
          【解决方案6】:

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

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

          如果您使用其他语言/平台工作,可以从 OpenID 社区站点 here 获得许多 OpenID 实现。

          【讨论】:

            【解决方案7】:

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

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

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

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

            【讨论】:

            • 假设我输入 yahoo.com 作为我的 OpenID 提供者,我被定向到“localhost”试图对我进行身份验证但它不喜欢它的 yahoo 页面。我对 OpenID 的理解是提供商会联系我的网站,因为我的网站不在无法运行的网络上。
            • 不,您的站点会联系 OpenID 提供商,然后由 OpenID 提供商对用户进行身份验证并重定向回您的站点。我不知道提供商对客户站点的任何请求。你真的需要更清楚你所说的“不喜欢它”是什么意思。您是否尝试过其他提供商,例如 myopenid.com?
            • openid.net/specs/openid-authentication-2_0.html#rp_discovery OpenID 2.0 有一个可选组件,提供商将在其中联系您的站点,而雅虎会这样做。但这并不是所有提供商的要求。
            猜你喜欢
            • 2010-10-14
            • 1970-01-01
            • 1970-01-01
            • 2012-01-15
            • 1970-01-01
            • 1970-01-01
            • 2013-08-01
            • 1970-01-01
            • 2012-07-01
            相关资源
            最近更新 更多