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

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

最佳答案

因此,我终于将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就会非常酷。

    关于perl - 在P中实现OpenID提供程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3039109/

    10-15 09:20