2013-01-14 48 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到目前爲止。最終的方式是我最終的方式:)如果我會在這個主題上發現一些有趣的內容,我會發布更新。 –