2012-11-06 49 views
3

我正在研究在一個應用程序中管理的微型生成器。Rails應用程序中路徑特定的Cookie

每個迷你會有它自己的認證。

使用子域名,我可以專門登錄並僅設置一個小型網站,而不是另一個。現在

,我想有故障轉移,每個微型網站是沒有設置子站點訪問:http://mygenerator/minisites/1123

是否有可能在該minisite/路徑級別範圍的餅乾?

或者,有沒有辦法在控制器級別動態調整before_filter中的Cookie密鑰?

我看了一下session_store配置中的:path選項,但我認爲它不相關,並且它在重定向循環中將Devise擰緊。

謝謝!

+0

黑客Cookie對象給出的感覺相當重手,再加上存儲的cookie有限,因此存儲多次登錄到t他同樣的cookie也不是一個好主意。你爲什麼不追求子域選項?這似乎是最明智的做法。 –

+0

感謝您的建議。這將是一個額外的功能,以避免設置子域來使用應用程序的要求。 –

+1

這是我的觀點:爲什麼要設置子域是一個很難的要求?它是通配證書價格嗎?這聽起來像你想要做3小時的工作,所以你可以節省1小時的麻煩。 –

回答

0

我知道它是一個遲到的回覆,但我沒有在網上找到任何答案回答這個問題。

我的問題是,應用程序總是在一個子路徑運行,但會話cookie總是發出/ 對我來說,這是固定的設置和使用Rails.application.config.x.base_url 您的具體問題,你可以計算的路徑,從request設置在方法

這需要在一個新的文件被添加在你的Rails的applcation ./config/initializers/session_store.rb

module SessionPath 
     extend ActiveSupport::Concern 

     def self.included(base) 
     base.class_eval do 
      alias_method :set_cookie_original, :set_cookie 
      alias_method :set_cookie, :set_cookie_extended 
     end 
     end 

     def set_cookie_extended(request, session_id, cookie) 
     cookie[:path] = Rails.application.config.x.base_url #or what you need 
     set_cookie_original(request, session_id, cookie) 
     end 

    end 

ActionDispatch::Session::AbstractStore.send(:include, SessionPath) 
相關問題