2012-02-27 122 views
2

我試圖在rails 3.1應用程序和rails 2.3.12應用程序之間共享會話。 rails 3.1應用程序是2.3.12應用程序的一個子域。這兩個應用程序都使用devise進行身份驗證(不同版本的rails兼容性)。使用devise在rails 3.1和2.3.12之間共享會話

我設法讓它工作到可以從任一應用程序訪問會話變量的地步,但登錄後失敗。看起來它失敗的原因是因爲session[:session_id]在登錄時被重置,而另一個應用程序與舊的session_id。

登錄後會話如何繼續共享?我試圖阻止設計重置session_id,但無法看到發生了什麼。

回答

0

請特別檢查Rails sessions上的文檔,特別是「2.5會話存儲」。

您需要保存會話,並且可能需要在兩個應用程序上使用相同的密鑰。

+0

我對這兩個應用都使用相同的密鑰,祕密和域名。我可以看到其他應用程序生成的cookie直到登錄(設計重置會話ID)。你是否建議切換到數據庫存儲的會話而不是存儲cookie會解決這個問題? – Zubin 2012-03-04 22:03:05

+0

是的!另外檢查這個屏幕錄像http://railscasts.com/episodes/221-subdomains-in-rails-3應該可以幫到你。 – 2012-03-05 12:14:56

+0

切換到active_record_store似乎沒有幫助。會話在應用程序之間同步,直到登錄。 – Zubin 2012-03-06 00:58:12

相關問題