Tal*_*boy 6 ruby ruby-on-rails heroku ruby-on-rails-6
到目前为止,我还没有看到任何答案,如果不建议禁用它(我不想这样做),就不会回答这个问题。
在本地,一切正常,但部署到 Heroku 上的生产环境中,我得到了InvalidAuthenticityToken.
从我所看到的一切来看,一切都设置正确。
Rails 6.0.3.1(因此不会迁移默认设置可能被禁用的位置)RAILS_MASTER_KEY在 Heroku 中设置会话session_store.rb设置Rails.application.config.session_store :cookie_store, key: '__app_session', expire_after: 1.yearcsrf_meta_tags在我的布局以及csp_meta_tagform_with. 我可以在开发工具中看到 CSRF 标记,所以我知道它位于 HTML 中我认为这可能是因为ApplicationController:
before_action :authenticate
Run Code Online (Sandbox Code Playgroud)
然而,似乎prepend: true不再在应用程序控制器中设置......
无论如何,我尝试通过添加它来覆盖它(即使默认情况下它不存在,并且如果我将其添加到行上方,它仍然不起作用before_action)
protect_from_forgery with: :exception, prepend: true
Run Code Online (Sandbox Code Playgroud)
编辑我还要说修复了 Sidekiq在尝试发出 DELETE 命令时显示禁止的问题(终止作业按钮)
小智 5
尝试添加config.force_ssl = true您的config/environments/production.rb并确保您的 SSL 配置正确,就像您所说的切换到FullSSL 而不是Flexible.