2008-09-19 54 views
5

我想通過共享相同會話的不同服務器上安裝一些Rails應用程序。我可以在同一臺服務器上完成,但不知道是否可以在不同的服務器上共享。任何人已經做過或知道如何做到這一點?通過服務器的Rails會話

謝謝

回答

3

根據您的應用程序是如何設置的,您可以容易在同一個域(foo.domain,bar.domain,域)站點共享的Cookie設置您的應用程序爲使用相同的祕密: http://www.russellquinn.com/2008/01/30/multiple-rails-applications/

現在,如果你有不同的網站,如sdfsf.com,dsfsadfsdafdsaf.com等,你將不得不做更多的技巧,因爲cookie的本質限制他們到特定的域。基本上你想要做的是使用跨站點腳本來代替劫持你的會話,從其他人那裏讀取它。

在這種情況下,使用相同的cookie祕密等的組合,然後一些跨站點腳本可以手動提取會話信息,並在每個站點上重新創建它(或如果您使用ActiveRecord會話{或NFS會議dir},與現有的鏈接)。這並不容易,但可以完成。

或者,低技術的方式(我之前完成的)只是讓登錄頁面訪問每個網站上的特製登錄頁面,在其上設置一個應用程序cookie並將您彈出到下一個頁面。它不漂亮。

0

嘗試使用數據庫支持的會話。

6

使用Database Session store。它的短期是這樣的:

生成表,在控制檯上,運行

rake db:sessions:create 
在你的environment.rb

,包括該行

config.action_controller.session_store = :active_record_store 
相關問題