2010-06-10 97 views

回答

1

one.y.comtwo.y.com可以通過將cookie域設置爲.y.com來共享cookie。這將在y.com的所有子域名上共享cookie。但是,不能直接與y.com共享Cookie。有一種使用重定向的解決方案,但實現起來很難 - http://www.codeguru.com/csharp/csharp/cs_internet/article.php/c19417/Sharing-Cookies-Across-Domains.htm(示例在ASP.net中,但是您可以將解決方案應用於RoR)。

+0

鏈接已過時 – 2013-10-18 05:04:15

+1

@MikeAtlas:好吧,這就像堆棧溢出一樣的網站的美麗。由於鏈接已過期,因此您可以花費不到10秒的時間搜索Google,以找到更新的鏈接並將其編輯到答案中。 – 2013-10-18 09:33:31

+0

更好的辦法是在你的文章中給出代碼示例,OP也可以在google上搜索10秒。另外,你真的認爲ASP.NET解決方案對於RoR問題是一個很好的答案嗎? – 2013-10-18 14:48:39

0

要使用相同的域使用相同的會話cookie工作,你應該在環境配置文件中配置這個。我爲我的一些應用程序這樣做。這是Rails 2.3.5應用程序,它應該與Rails 3相同,但我不積極。

首先,在config/initializers/session_store.rb,確保:

# ActionController::Base.session_store = :active_record_store 

被註釋掉。

接下來,所有的應用程序應該使用相同的密鑰和密碼,在同一文件中,設置:

ActionController::Base.session = { 
    :key   => '_myapp_session', 
    :secret  => 'some really long string of hex' 
} 

最後,配置環境文件,使用相同的域:

config/environments/development.rb

config.action_controller.session = { 
    :domain => ".rails.local" 
} 

config/environments/production.rb

config.action_controller.session = { 
    :domain => ".myapp.com" 
} 
+0

這對x.com和y.com不起作用。爲什麼你不能使用active_record_store? – 2010-06-10 16:48:12

+0

編輯添加它只能使用相同的域。使用活動記錄存儲可能適用於不同領域的應用程序,但是您可能必須在兩個應用程序上使用相同的數據庫,這些數據庫在將rails 2.3移動到機架後從未真正能夠工作,這就是爲什麼我使用使用共享密鑰和祕密會話cookie。 – 2010-06-11 02:18:26

+3

這不回答任何OP問題。 – rxgx 2012-05-16 00:39:57

相關問題