2013-01-14 97 views
3

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

我发现在GitHub上红宝石的宝石叫亚历克-auth的,但它并没有在超过3年进行了更新。

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

然而,这一任务变得艰巨,将成为又一个LIB管理。

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

有没有人碰到之前这样做,如果是的话是什么,你所用的方法。

回答

2

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

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

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

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

我不喜欢这种方式:)我认为我的网站作为主要的应用程序并且不希望论坛来处理我的用户...

所以,按照我的理解开始从phpbb 3你可以编写插件(API docs)作为phpbb的外部认证。

在网络中Python和Django中有几个例子。对于相同的域+ db访问看起来像this one。看起来像this one用于通过JavaScript进行远程处理。那些是Python,但是里面没有太多的Python,只有一些例子:),所以你可以很容易地将它们用于rails,我想。

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

+0

我最终使用了phpass-ruby gem并且只是手动检查密码。我应该为它创建一个gem ..现在,rails应用程序只需访问phpbb_users表并进行身份验证并创建一个单独的会话存储。 – gorelative

+0

我的问题是使用Heroku并尝试添加多个远程MySQL数据库。由于rails应用程序将连接至少两个数据库来读取信息。 – gorelative

+0

不幸的是,我没有任何经验。在使用Heroku到目前为止。最终的方式是我最终的方式:)如果我会在这个主题上发现一些有趣的内容,我会发布更新。 –