【问题标题】:PHPBB Authentication + RailsPHPBB 身份验证 + Rails
【发布时间】:2012-12-28 13:20:19
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: ruby-on-rails-3 phpbb3


    【解决方案1】:

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

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

    • 您会将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 docs)。

    网上有几个Python和Django的例子。看起来像 this one 用于相同的域 + 数据库访问。看起来像 this one 用于使用 JavaScript 远程执行操作。这些都是在 Python 中的,但里面没有太多的 Python,只有一些例子:),所以你可以很容易地将它们用于 rails,我认为。

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

    【讨论】:

    • 我最终使用 phpass-ruby gem 并手动检查密码。我应该为它创建一个 gem。现在 rails 应用程序只访问 phpbb_users 表并进行身份验证并创建一个单独的会话存储。
    • 我的问题是使用 Heroku 并尝试添加多个远程 MySQL 数据库。因为 rails 应用程序将连接到至少两个数据库来读取信息。
    • 不幸的是我没有经验。到目前为止使用 Heroku。你结束的方式就是我结束的方式:) 如果我能找到关于这个主题的有趣内容,我会发布更新。
    • 另一种方法。您可以让您的 phpbb 论坛成为 oauth 提供者。并使用omniauth gem 从rails 访问它。不确定事情是否会以这种方式锻炼,但有一天肯定会尝试这个。你可以在这里找到一些链接教程:stackoverflow.com/questions/3454063/set-up-a-php-oauth-provider
    猜你喜欢
    • 1970-01-01
    • 2018-04-15
    • 2011-02-21
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    相关资源
    最近更新 更多