ruby-on-rails-3 - PHPBB 身份验证 + Rails

标签 ruby-on-rails-3 phpbb3

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

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

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

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

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

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

最佳答案

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

因此,根据您的设置/部署,您基本上有多种选择。考虑以下内容:

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

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

但是

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

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

网上有几个Python和Django的例子。看起来像 this one对于相同的域 + 数据库访问。看起来像 this one用于使用 JavaScript 远程执行操作。这些是用 Python 编写的,但里面没有太多 Python,只有一些示例 :),所以我认为您可以轻松地将它们用于 Rails。

This question讨论相同的内容,但以更通用的方式。

关于ruby-on-rails-3 - PHPBB 身份验证 + Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14320865/

相关文章:

ruby-on-rails - ActiveRecord::UnknownAttributeError?

oauth-2.0 - 使用 Google 外部登录 PHPBB 3.1

php - 将 CodeIgniter 与 phpBB3 用户系统集成

php - phpbb3 论坛上的单独 mysql 查询不返回任何内容(mysql 在服务器上,但 phpbb 没有使用它)

css - 头像不显示在 phpbb 论坛上

ruby-on-rails - ruby on rails ssh连接而不提供密码

jquery - Rails3 Rails.js 和 jquery 捕获ajax请求的成功和失败

ruby-on-rails-3 - Rails 包含嵌套关系

ruby-on-rails - 带有 gmaps4rails 的谷歌地图中的不同标记

mysql - 这个 phpBB 的 SQL 有什么问题?