1

我有两个应用程序,一个是 Sinatra 应用程序,另一个是 Rails 应用程序。我在 Rails 应用程序中设置了签名的 cookie,我需要将该 cookie 从浏览器发送到 Sinatra。

问题是如果 cookie 已签名,我如何从我的 Sinatra 应用程序中查看该 cookie 的内容?

这些应用程序位于具有不同子域的同一域下。这是可能的,甚至是安全的吗?

4

1 回答 1

2

您确实可以在子域之间共享 cookie。您需要将cookie域设置为.your-domain.com 注意前导点,这很重要。

要读取 cookie,这两个站点必须共享 cookie 签名密钥。

在 Sinatra 中,您可以在 Rack 中设置它:来自 Sinatra 常见问题解答

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

因此,您需要设置与Rails.application.config.cookie_secretRails 配置中相同的秘密

于 2012-08-15T15:34:31.980 回答