我们在生产环境中遇到了表单提交的问题。这个标准似乎非常罕见,我无法复制这个问题。
CSRF令牌创建并验证良好。
定时
问题似乎只发生在当用户等待超过2小时的形式提交之前,但这样做,我们一直无法重现以及.
W, [2022-07-14T15:19:37.535241 #2433] WARN -- : Can't verify CSRF token authenticity.
I, [2022-07-14T15:19:37.535556 #2433] INFO -- : Completed 422 Unprocessable Entity in 1ms (ActiveRecord: 0.0ms | Allocations: 291)
F, [2022-07-14T15:19:37.536425 #2433] FATAL -- :
ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
字符串
系统配置
Rails版本6.1.6*Ruby版本2.7.4
2条答案
按热度按时间bz4sfanl1#
该问题是由于
rails-ujs
在某些情况下无法在远程表单提交的同时插入CSRF令牌引起的。我无法确定根本原因,但升级到Rails 7和Turbo解决了这个问题。
prdp8dxp2#
签入session_store.rb的初始化器
在里面,如果你可能会发现已经设置了expire_after:
字符串