2014-05-07 82 views
8

我發現使用域如foo.bar.uk.com導致Rails在提交任何表單時會拋出ActionController::InvalidAuthenticityTokenActionController :: InvalidAuthenticityToken和域名

foo.bar.co.ukfoo.bar.co.com工作,但由於某種原因foo.bar.uk.com引發錯誤。

某處是否有可接受的域/ TLD列表?

這也引發錯誤的foo.bar.eu.com

更新:

刪除:

:domain => :all 

來自:

MyApp::Application.config.session_store :cookie_store, key: '_my_session', :domain => :all 

允許形式要分mit,但它不能修復登錄(即其他與cookie相關的功能)。

+0

我不使用這些域名看到任何問題。在這裏試了一下:https://github.com/phoet/on_ruby/commits/subdomains你看到了什麼樣的錯誤? – phoet

+0

你能詳細解釋一下你在做什麼嗎?您的網站是一臺服務器,可通過三個域名訪問? Cookie是特定於域的afaik,因此您的會話/ cookie僅對一個域有效。你不是交叉發佈我想? InvalidAuthenticityToken存儲在表單和會話中。所以不知何故,你開始一個新的會議。會話存儲在Cookie中並且是特定於域的。 – nathanvda

回答

1

當您的項目部署在包含多個TLD的域中時,Rails會感到困惑。在Rails 3中,如果這就是你正在使用的,你必須改變文件config/initializers/session_store.rb。

Rails.application.config.session_store :cookie_store, { 
    key: 'YOUR KEY, THIS VALUE IS ALREADY DEFINED', 
    domain: '.co.uk' 
} 

希望它可以幫助

相關問題