所以我终于将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就会非常酷。
Fyi,Net-OpenID Perl模块的开发正在启动,所以你可以期待大量的错误修正和更好的文档很快就能实现。检查CPAN和openid-perl组以获取详细信息。