2011-05-25 69 views
0

我有一個基於子域的Rails應用程序。它還包含可以公開訪問我們的客戶的REST API。我有另一個客戶端應用程序,通過它我正在訪問主應用程序的REST API。Rails,基於子域的Cookie

當我訪問都在同一個瀏覽器的應用程序和登錄的主應用程序,我不能夠訪問不同的子域的REST API的客戶端應用程序的cookie的獲得根據訪問的域名存儲。

有沒有什麼辦法來區分基於子域的cookie。

在此先感謝。

回答

1

您應該將cookie的域名設置爲.yourdomain.com以便您的Cookie設置爲主域名和所有子域名。在配置/初始化/ session_store.rb

的Rails 3:

Rails.application.config.session_store :cookie_store, :key => '_my_key', :domain => ".yourdomain.com" 

上的config/environment.rb中Rails的2.3+:

config.action_controller.session = { :key => '_my_key', :domain => '.yourdomain.com' } 
+0

好笑,你應該說,是因爲我們有完全相同的設置您推薦,但由於某些原因,偶爾會話cookie將被設置爲「example.com」而不是「.example.com」。我試圖調試爲什麼會發生這種情況,因爲我查看了可能的嫌疑人的代碼,發現沒有。既然我們已經有了你建議的設置,接下來呢? – 2011-08-26 19:39:02