2009-06-02 127 views
1

我有兩個應用程序,並希望他們分享他們的會話。這是微不足道的,至少目前爲止。現在我遇到了一些問題。共享應用程序之間的導軌會話

我在environment.rb中設置了相同的session_key和secret,並且兩個應用程序沒有共享同一個會話。

如果development.rb有東西...什麼都沒有。

試圖清理餅乾等,沒有。

然後我試圖改變這個祕密,幸運的是我試圖改變一些簡短的東西(mysecret),然後出現了一些尷尬的事情。正在運行的應用1行,但正在運行的應用2提出:

c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/session/cookie_store.rb:188:in `ensure_secret_secure': Secret should be something secure, like "f1e78444a4c3402165606a8314d29704". The value you provided, "myownsecret", is shorter than the minimum length of 30 characters (ArgumentError) 
    from c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_c 

但兩者的應用程序在運行2.3.2。

然後我已經嘗試了兩個應用程序的控制檯,並驗證了祕密是非常相同的。

那麼,這裏可能會有什麼影響?

+0

你解決這個問題呢? – Jim 2010-01-18 11:00:57

回答

1

可能與域名有關嗎?我很確定會話cookie是按域存儲的。您可以嘗試使用下面的代碼覆蓋它 - 只要您爲每個應用程序使用具有不同子域的相同域(將其放置在您的config/environments/production.rb中)或者如果您需要它可以使用development.rb開發模式太):

ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS[:session_domain] = '.yourdomain.com' 

編輯:對Rails 2.3的語法是:

config.action_controller.session = { 
    :domain => ".yourdomain.com" 
} 
相關問題