6

这可能是在黑暗中拍摄,但我正在尝试使用Net::OpenID::Server 模块在 Perl 中实现 OpenID 提供程序。整个过程的文档混乱且稀疏。

如果有人在 Perl 中成功实现了提供程序,您能否粘贴一些代码片段?

4

2 回答 2

7

因此,我终于将 OpenID 安装到位,并且运行良好。我想我会详细说明我遇到的一些问题。

  • OpenID 登录过程有三个以上的状态/步骤。这是令人困惑的,因为文档和示例代码会让您相信存在三个。在某些情况下,最多有七个。观察你的服务器日志,看看有多少次 SERVER 和 USER(请求身份验证的人)点击了 PROVIDER(你可能正在设置的内容)。当你只查看一半的交互时,很难调试某些东西
  • 许多提供商正在使用未最终确定的 OpenID 2.0 规范。(稍微好一点。) 2.0 规范与 1.0 规范的表现不同;服务器(他们)与提供者(您)建立信任。Net::OpenID::Server 可以优雅地处理此问题,但不会告诉您它使用的是什么规范。2.0 规范在握手过程中增加了一个步骤。
  • 设置您自己的 OpenID SERVER 以便于测试。我使用了一个简单的 Rails 服务器和一个名为 ruby​​-openid 的 gem。大约需要 10 分钟来设置以模仿真实的野外服务器的行为。
  • 不用说,但请确保您的登录过程是无状态的。我们有一个全局变量来处理如何验证用户。由于使用该变量做出了与 OpenID 登录过程不兼容的某些假设,因此用户将被允许登录到他们自己的帐户以外的帐户。这显然很糟糕。一些闭包,我们就有了一些无状态且更安全的代码。

总而言之,一旦你开始使用 OpenID,它就非常酷。

于 2010-07-22T15:38:05.810 回答
0

仅供参考,Net-OpenID Perl 模块的开发正在启动,因此您可以期待大量错误修复和更好的文档现在很快就会实现。检查 CPAN 和openid-perl组以获取详细信息。

于 2010-11-08T22:46:36.297 回答