我们在生产环境中遇到表单提交问题。 该标准似乎异常罕见,我无法复制该问题。
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
检查 session_store.rb 的初始化程序
在里面你可能会发现已经设置了expire_after:
Rails.application.config.session_store :cookie_store,
key: '_myapp_session_',
expire_after: 30.minutes