1
我有兩個應用程序,一個是Sinatra應用程序,另一個是Rails應用程序。我已經在Rails應用程序中設置了簽名cookie,我需要將該cookie從瀏覽器發送到Sinatra。從Rails應用程序簽名到Sinatra應用程序的Cookie
問題是如何在我的Sinatra應用程序中看到cookie的內容(如果cookie已簽名)?
這些應用程序位於不同子域的相同域中。這是可能的甚至是安全的嗎?
我有兩個應用程序,一個是Sinatra應用程序,另一個是Rails應用程序。我已經在Rails應用程序中設置了簽名cookie,我需要將該cookie從瀏覽器發送到Sinatra。從Rails應用程序簽名到Sinatra應用程序的Cookie
問題是如何在我的Sinatra應用程序中看到cookie的內容(如果cookie已簽名)?
這些應用程序位於不同子域的相同域中。這是可能的甚至是安全的嗎?
你確實可以在子域之間共享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配置
的路徑是什麼一樣
Rails.application.config.cookie_secret
?另外,在開發中,我需要將域名設置爲localhost,我將如何設置域名?問題是,cookie是經過簽名的,因此當我在sinatra應用程序上獲得請求時,我查看request.cookie [「somecookie」]我從rails獲取帶符號的值,而不是我需要的實際值 – 2012-08-15 15:52:16