2012-08-15 109 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

相关问题