2013-01-18 35 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訪問應用程序時不會取得任何成功。

相關問題