2011-12-29 113 views
1

所以,這可能是一種愚蠢的問題,但我檢查了Google並沒有點擊。我們希望以一種使它們看起來均勻的方式託管多個Rails應用程序。我們希望所有應用具有相同的外觀和感覺,並且所有應用都使用相同的登錄數據庫。Rails通過Web服務進行身份驗證

主題我認爲我們可以通過將網站主題放入gem中,並在每個應用程序中從我們的github存儲庫請求該gem來實現。但是,auth更棘手。

我知道我可以通過不讓網站的不同部分(商店,聊天論壇等)有不同的應用來實現這個「免費」。如果它們都是Rails引擎,我們可以基本上將它們放到同一個應用程序中,並使用它們自己的命名空間路線,並且擁有一個可以進行身份​​驗證的插件。

但是,由於各種原因,如果技術上可行,我們希望保留這些單獨的應用程序。首要原因是可擴展性;因爲這將是一個託管網站,我們希望能夠靈活地啓動更多的商店實例(可能是爲了應對假期促銷),而無需啓動聊天論壇。另外,我們希望能夠完全隔離不相互交織的代碼部分。在理想情況下,數據庫也是分開的(使我們不再陷入「把所有東西都包括在廚房水槽裏)」,但我確實知道用一種「便宜」的方式做跨應用程序auth只是使用相同的插件(比如Devise),並且指向同一個數據庫。

所以,我想可能這樣做的方法是通過Web服務調用進行認證。這是否是現有技術?是否有人爲此提供了「正常工作」的寶石,以便可以在所有應用程序之間共享身份驗證?或者,我正在試圖通過這種方式建立事物而進入一個痛苦的世界?

在此先感謝!

回答

0

你可以做在描述上的做法單點登錄:

http://blog.joshsoftware.com/2010/12/16/multiple-applications-with-devise-omniauth-and-single-sign-on/

與OAuth的,並制定方法的單點登錄有一些缺點。我遇到的主要問題是我無法延長跨多個應用程序的超時時間。

+0

謝謝,我看着這個。它看起來像一個好主意,但代碼仍然非常原始;當然不是在按鈕和「走」的狀態下,像安全一樣重要。我們正在重新思考我們的應用程序架構,以確定多個應用程序是否真的是正確的選擇。 – 2012-01-03 16:56:03