Ruby on rails 轨道6-Heroku上的InvalidaAuthenticationToken

Ruby on rails 轨道6-Heroku上的InvalidaAuthenticationToken,ruby-on-rails,ruby,heroku,ruby-on-rails-6,Ruby On Rails,Ruby,Heroku,Ruby On Rails 6,到目前为止,我还没有看到任何答案,如果不建议禁用它(我不想这么做),就不要回答这个问题 在本地,一切都正常,但部署到了Heroku上的producton,我得到了InvalidAuthenticationToken 从我所看到的一切来看,一切都安排妥当了 Rails 6.0.3.1上的全新应用程序(因此,在默认情况下可能禁用设置的情况下,不会迁移该应用程序) RAILS\u MASTER\u键在Heroku中为会话设置 session\u store.rb设置为Rails.applicatio

到目前为止,我还没有看到任何答案,如果不建议禁用它(我不想这么做),就不要回答这个问题

在本地,一切都正常,但部署到了Heroku上的producton,我得到了
InvalidAuthenticationToken

从我所看到的一切来看,一切都安排妥当了

  • Rails 6.0.3.1
    上的全新应用程序(因此,在默认情况下可能禁用设置的情况下,不会迁移该应用程序)
  • RAILS\u MASTER\u键
    在Heroku中为会话设置
  • session\u store.rb
    设置为
    Rails.application.config.session\u store:cookie\u store,键:“\uuuuuu app\u session”,过期时间:1年
  • csrf\u meta\u标签
    在我的版面中以及
    csp\u meta\u标签
  • 没有使用ajax,这是一个带有的普通
    表单。我可以在dev工具中看到CSRF标记,所以我知道它在HTML中
我认为这可能是因为
ApplicationController
中的这一点:

before_action :authenticate
但是,应用程序控制器中似乎不再设置
prepend:true

无论如何,我都试图通过添加它来覆盖它(即使默认情况下它不在那里,而且如果我在操作之前将它添加到
行上方,它仍然不起作用)


编辑我还想说,当试图发出删除命令时,固定的Sidekiq显示被禁止(kill job按钮)

尝试在
config/environments/production.rb
中添加
config.force\u ssl=true
,并确保您的ssl配置正确,就像您所说的那样,切换到
Full
ssl,而不是
Flexible

您是否在生产中自托管?使用SSL?Heroku和Cloudflare。。。然而,你这么说让我意识到我从未将flexiblessl更改为Full。如果SSL是一个潜在的问题源,那么可能就是它。尝试一下,甚至在
config/environments/production.rb
文件中添加
config.force\u SSL=true
,效果很好。你能把这个作为答案,这样我就可以记下来吗?如果需要,您可以设置一些选项(灵活的ssl、强制ssl等)。另外,我应该补充一点,这个固定的sidekiq显示“禁止”你能帮助我们如何在AWS EC2上托管一个应用程序来做到这一点吗?我正在尝试删除Sidekiq上的“禁止”错误,当尝试执行“重试所有”时@DheerajAvvari您是否将
config.force\u ssl=true
添加到您的
config/environments/production.rb
文件?您确定在EC2中正确配置了SSL吗?您运行的是哪台服务器—Apache/Nginx?你在SSL-certbot或soemthing中使用什么?
protect_from_forgery with: :exception, prepend: true