Rails InvalidAuthenticityToken 与 HTTPS + ELB

oni*_*iko 3 ssl ruby-on-rails authenticity-token csrf-protection elastic-load-balancer

我正在尝试让 HTTPS 适用于我的网站,但我正在处理ActionController::InvalidAuthenticityToken所有发布请求。我记录了form_authenticity_paramform_authenticity_token,它们实际上是不同的。

SSL 在弹性负载均衡器上解析,并将非 SSL 请求发送到 Web 应用程序。预期的 CSRF 令牌存储在基于 cookie 的会话中,因此 HTTP 和 HTTPS 的会话似乎需要不同的令牌。在网站上使用 HTTP 时,post/put 请求工作正常。

我已经被这个问题困扰了一段时间。任何意见将是有益的

小智 5

我也有同样的问题,但不是rails。

proxy_set_header X-Forwarded-Proto https;我通过添加 nginx.config解决了这个问题

  location @videos {
    proxy_pass http://videos;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Host $http_host;
    proxy_redirect off;
  }
Run Code Online (Sandbox Code Playgroud)