在Perl中实现OpenID提供程序

时间:2010-06-14 16:46:22

标签: perl openid openid-provider

这可能是一个黑暗的镜头,但我正在尝试使用Net::OpenID::Server module在Perl中实现OpenID提供程序。整个过程的文档令人困惑和稀疏。

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

2 个答案:

答案 0 :(得分:7)

所以我终于将OpenID安装到位,它运行得很好。我想我会详细介绍一下我遇到的一些问题。

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

总而言之,一旦你开始工作,OpenID就会非常酷。

答案 1 :(得分:0)

Fyi,Net-OpenID Perl模块的开发正在启动,所以你可以期待大量的错误修正和更好的文档很快就能实现。检查CPAN和openid-perl组以获取详细信息。