在Perl中实现OpenID提供程序

Kel*_*ton 6 openid perl openid-provider

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

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

Kel*_*ton 7

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

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

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