2010-02-17 79 views
2

我創建的Rails應用程序將與舊應用程序在相同的域上運行。我希望能夠使用舊版應用的寧靜登錄功能來爲新應用驗證用戶身份。理想情況下,用戶可以登錄到舊的應用程序,然後訪問新的應用程序。我爲每個應用程序運行兩個雜種實例。非常感謝任何幫助Rails在多個應用程序之間共享寧靜的身份驗證

回答

0

如果您使用相同版本的身份驗證插件,則可以使用其他數據庫進行身份驗證。

Rails不處理多個數據庫連接,所以你必須使用這樣的破解:Multiple Database Connections in Ruby on Rails

然後安裝與舊應用程序中完全相同的插件,以便它使用相同的數據庫模式。然後在用戶模型中將數據庫連接切換到舊數據庫。

+0

謝謝lolindrath。此設置是否允許在應用程序之間進行共享會話,以便如果用戶登錄到較舊的應用程序,然後單擊指向較新應用程序的鏈接,他們將不必再次登錄?我的印象是這個設置允許對同一個數據庫進行身份驗證,但不能跨應用程序共享會話。 – chase

3

所以我想通了。連接到用戶數據庫(建議使用lolindrath)以允許較新的應用程序訪問用戶數據庫,這讓我們獲得了一半。用戶現在可以像舊應用程序一樣以安寧的方式登錄到較新的應用程序,但身份驗證不會從一個應用程序轉移到另一個應用程序。要允許單個登錄工作在兩個應用程序上,您必須將Cookie會話數據從舊應用程序複製到較新的應用程序。

因此,在./config/initializers/sessiont_store.rb文件中將以下數據從舊應用程序粘貼到新應用程序(舊版本的rails在./config/environment.rb文件中有):

ActionController::Base.session = { 
    :domain  => '.localhost.com', 
    :session_key => '_Project_name_session', 
    :secret  => '09808ajdsfkljdfwu309jas3longerkey' 
    } 
相關問題