ruby Rails 6 CSRF令牌过期问题

41zrol4v  于 11个月前  发布在  Ruby
关注(0)|答案(2)|浏览(104)

我们在生产环境中遇到了表单提交的问题。这个标准似乎非常罕见,我无法复制这个问题。
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

bz4sfanl

bz4sfanl1#

该问题是由于rails-ujs在某些情况下无法在远程表单提交的同时插入CSRF令牌引起的。
我无法确定根本原因,但升级到Rails 7和Turbo解决了这个问题。

prdp8dxp

prdp8dxp2#

签入session_store.rb的初始化器
在里面,如果你可能会发现已经设置了expire_after:

Rails.application.config.session_store :cookie_store,
                                       key: '_myapp_session_',
                                       expire_after: 30.minutes

字符串

相关问题