2014-05-07 17 views
8

herhangi formları gönderirken gibi foo.bar.uk.comRails neden olan bir alan adını kullanan bir ActionController::InvalidAuthenticityToken atmak için olduğunu keşfettik.ActionController :: InvalidAuthenticityToken ve alan adları

foo.bar.co.uk ve foo.bar.co.com çalışır, ancak nedense foo.bar.uk.com hata atar.

Bir yerde kabul edilebilir etki alanı/TLD listesi var mı? çıkarmadan

:

:domain => :all 

den:

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

verir

Ayrıca foo.bar.eu.com

Güncelleme hatayı atar alt formu mit, ancak giriş yapmayı düzeltmez (örn. diğer çerezle ilgili işlevler).

+0

i bu alan adlarını kullanan herhangi bir sorun görmüyorum yardımcı olur. Burada denedim: https://github.com/phoet/on_ruby/commits/subdomains tam olarak ne tür bir hata görüyorsunuz? – phoet

+0

Tam olarak ne yaptığınızı biraz daha ayrıntılı olarak açıklayabilir misiniz? Siteniz bir sunucudır ve üç alan adıyla ulaşılabiliyor mu? Bir çerez alan adına özel afaiktir, dolayısıyla oturumunuz/çerezleriniz yalnızca bir alan adı için geçerlidir. Ben çapraz gönderim değil mi? InvalidAuthenticityToken, formda ve oturumda saklanır. Yani bir şekilde yeni bir seansla başlıyorsun. Çerezde ve alana özgü bir oturum saklanır. – nathanvda

cevap

1

Projeniz birden fazla TLD içeren bir etki alanında dağıtıldığında, raylar karışır. Rails 3'te, kullandığınız buysa, config/initializers/session_store.rb dosyasını değiştirmeniz gerekir.

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

o

İlgili konular