2012-08-15 147 views
1

我有兩個應用程序,一個是Sinatra應用程序,另一個是Rails應用程序。我已經在Rails應用程序中設置了簽名cookie,我需要將該cookie從瀏覽器發送到Sinatra。從Rails應用程序簽名到Sinatra應用程序的Cookie

問題是如何在我的Sinatra應用程序中看到cookie的內容(如果cookie已簽名)?

這些應用程序位於不同子域的相同域中。這是可能的甚至是安全的嗎?

回答

2

你確實可以在子域之間共享cookie。您需要將Cookie域設置爲.your-domain.com請注意最前面的點,這很重要。

要閱讀這些cookie,這兩個網站必須共享cookie簽名祕密。

在西納特拉,你可以在機架設置:from Sinatra FAQ

use Rack::Session::Cookie, :key => 'rack.session', 
         :domain => 'foo.com', 
         :path => '/', 
         :expire_after => 2592000, # In seconds 
         :secret => 'change_me' 

所以,你需要設置的祕密在你的Rails配置

+0

的路徑是什麼一樣Rails.application.config.cookie_secret?另外,在開發中,我需要將域名設置爲localhost,我將如何設置域名?問題是,cookie是經過簽名的,因此當我在sinatra應用程序上獲得請求時,我查看request.cookie [「somecookie」]我從rails獲取帶符號的值,而不是我需要的實際值 – 2012-08-15 15:52:16

相關問題