3

我有一个 phpbb 论坛,我正在开发一个用于移动友好应用程序的 rails 应用程序。我需要一种在 phpbb 和 rails 之间执行 SSO 的方法。

我在 github 上找到了一个名为 phpbb-auth 的 ruby​​ gem,但它已经超过 3 年没有更新了。

我最初的想法是在 rails 中模仿 phpass(我相信这是最新的 phpbb 使用的),然后在使用 Devise/Warden 进行身份验证时让 rails 引用 phpbb_users 表。

然而,这项任务变得令人生畏,并且将成为另一个需要管理的库。

我的下一个想法是为 Warden 编写一个插件来检查 phpbb_session,如果它在那里,然后继续。否则将它们重定向到 phpbb 登录页面。

有没有人遇到过这样做,如果有,你使用的方法是什么。

4

1 回答 1

2

我现在正在做同样的事情(实际上已经成功了)。

因此,您基本上有几个选项,具体取决于您的设置/部署。考虑以下:

  • 你会在同一个域或不同域上部署你的 Rails 应用程序和 phpbb 吗?
  • 让两个站点相互访问数据库。
  • 您希望使用哪种身份验证系统?因此,您希望 rails(即设计、authlogic 或其他)验证和处理用户或 phpbb db auth(即在 phpbb 用户表中存储登录名和密码)。

到目前为止,我已经通过 phpbb db auth + single domain 与我的应用程序实现了身份验证(phpbb:forum.example.com,我的 rails 应用程序在:example.com 用于 cookie 共享)。在这种情况下,您可以使用您提到的 gem 中的代码(phpbb-auth)。这不是很难。代码仍然可以正常工作(可能进行了一些调整)。

我不喜欢这种方式:) 我认为我的网站是一个主要应用程序,不希望论坛处理我的用户......

因此,据我了解,从 phpbb 3 开始,您可以为 phpbb 的外部身份验证编写插件(API 文档)。

网上有几个 Python 和 Django 的例子。看起来像这个用于相同的域 + db 访问。看起来像这个用 JavaScript 远程做事。那些是在 Python 中的,但里面没有太多的 Python,只有一些例子:),所以你可以很容易地将它们用于 rails,我认为。

这个问题讨论相同的东西,但以更通用的方式。

于 2013-01-19T15:36:23.037 回答