【发布时间】:2010-04-07 13:57:34
【问题描述】:
我有一个刚刚部署的 Rails 应用程序,在提交表单的任何地方都会生成 Invalid AuthenticityToken 错误。该应用程序使用子域作为帐户名称,并且最终还允许输入自定义域。我在 production.rb 中有一个条目以允许跨域会话处理。
问题是您无法登录/或提交任何表单,因为一切都会引发 Invalid AuthenticityToken 错误。这个问题看起来与Rails - Invalid Authenticity Token After Deploy 相似但不一样,而且我没有使用mongrel。我试过清除浏览器中的 cookie,然后重新启动乘客,但没有成功。
有人有什么想法吗?
服务器正在运行 nginx + 乘客 2.3.11 和 Rails 2.3.5。
#production.rb
config.action_controller.session[:domain] = '.domain.com'
#environment.rb
config.action_controller.session = {
:session_key => '_app_session',
:secret => '.... nums and chars .....'
}
更新:我刚刚注意到我的生产环境中没有设置会话 cookie。因此,我猜测会话不能与 CSRF 值绑定。我想知道未设置的 cookie 是否与我的动态子域有关?
【问题讨论】:
标签: ruby-on-rails ruby session passenger