使用SSL在Nginx后面的Rails 5中的InvalidAuthenticityToken

tpb*_*den 9 cookies ssl ruby-on-rails nginx ruby-on-rails-5

我对Rails 5(beta1)有一个非常奇怪的问题,它阻止我安全地提交任何表单.

当在生产模式下运行Nginx(在Ubuntu 12.04上为1.4.6)反向代理后面解密SSL时,Rails拒绝我的CSRF令牌,说它们无效,尽管表格正在提交正确的令牌.

当我在Nginx中关闭SSL时,一切正常.

任何帮助,将不胜感激.

tpb*_*den 16

通过在加入Nginx的多个报头修正(X-Forwarded-Ssl on,X-Forwarded-Port 443X-Forwarded-Host "your hostname",X-Forwarded-Proto https).问题实际上是以新的方式由ActionController检查CSRF令牌(将request.base_url与origin头进行比较)

  • 我也有这个问题.为我修复它的单行是将`proxy_set_header X-Forwarded-Proto https;`添加到`location @ puma`块 (7认同)