2013-01-18 15 views
0

在开发环境中。 Twitter API要求我们从0.0.0.0而不是本地主机或任​​何其他主机名登录。设置具有子域的session_store会干扰Twitter登录。为什么?

但是,我们也在通过子域测试我们的本地应用程序。在session_store.rb

Foobar::Application.config.session_store :redis_store, :servers => REDISTOGO_URL, :key_prefix => "foobar:rails:session", :expire_in => 1.week, :domain => '.localhost.dev' 

每次我们尝试登录到Twitter的,我们得到401 Unauthorized。如果我们设置了:domain => '0.0.0.0',我可以很好地登录到Twitter。有:

Foobar::Application.config.session_store :redis_store, :servers => REDISTOGO_URL, :key_prefix => "foobar:rails:session", :expire_in => 1.week 

没有:domain =>部分,我可以登录到Twitter没有任何问题。

为什么要在session_store.rb中设置:domain干扰Twitter登录?

回答

0

会话存储集中的:domain选项是会话ID Cookie将发布的域。当cookie的域设置和当前url的主机名匹配时,浏览器只会将cookie发送回应用程序。

:domain => '.localhost.dev'在你的设置,如在你的榜样意味着你必须访问使用http://localhost.dev或与它(http://www.localhost.dev)子域就可以了你的网站了。由于主机名不匹配,您在通过http://0.0.0.0访问应用程序时不会取得任何成功。

相关问题