使用Rails应用程序登录时子域之间的InvalidAuthenticityToken
问题描述:
我刚刚在secure.mydomain.com上添加了SSL。当有人登录时,他们会从主(www)子域的表单发布到安全子域。这会导致生成InvalidAuthenticityToken错误。使用Rails应用程序登录时子域之间的InvalidAuthenticityToken
我读过,有必要跨子域共享会话数据。为此,我已经添加了:
config.action_controller.session = { :domain => '.mydomain.com' }
to config/environments/production.rb。不幸的是,这并没有解决问题。
感谢您的帮助!
答
Rails 3中,如果这是你使用的是什么,希望你做出这种变化config/initializers/session_store.rb
。
Rails.application.config.session_store :cookie_store, {
:key => '[my key]',
:domain => '.example.com'
}
给一个去。如果事情仍然无法正常工作,请检查浏览器中的Cookie,看它是否有任何特殊的域设置。这将有助于缩小它是否设置或获取这是个问题:/
答
我觉得这条线在你的应用程序布局
<%= csrf_meta_tags %>
工作。谢谢。 – Michael 2010-12-16 05:23:39
对于不同环境的不同域名,比如''lvh.me' for'development',你可以使用类似下面的内容:'域名:{'example.com', }, development:'.example.dev' } .fetch(Rails.env.to_sym,:all)' – 2015-09-24 02:30:26