Ruby on rails 3.2 CSRF令牌会话被重置

Ruby on rails 3.2 CSRF令牌会话被重置,ruby-on-rails-3.2,csrf,authenticity-token,Ruby On Rails 3.2,Csrf,Authenticity Token,我正在使用Rails 3.2.3以及用于会话的活动记录存储 据我所知,rails中的CSRF令牌存储在会话中,除非调用reset_会话或由于某种原因会话被破坏,否则不应重置 但在某些地方,当远程表单通过ajax加载时,它包含的真实性令牌与该页面上的META标记中指定的不同。因此导致无效令牌错误,并在提交该表单时重置会话 def form_authenticity_token session[:_csrf_token] ||= SecureRandom.base64(32) end 我无法找

我正在使用Rails 3.2.3以及用于会话的活动记录存储

据我所知,rails中的CSRF令牌存储在会话中,除非调用reset_会话或由于某种原因会话被破坏,否则不应重置

但在某些地方,当远程表单通过ajax加载时,它包含的真实性令牌与该页面上的META标记中指定的不同。因此导致无效令牌错误,并在提交该表单时重置会话

def form_authenticity_token
  session[:_csrf_token] ||= SecureRandom.base64(32)
end

我无法找到一个有效的正在进行的会话,为什么会话[:\u csrf\u token]会被破坏并创建一个新的令牌?

经过大量搜索,终于找到了这个问题。我将模型对象直接存储在会话中,尽管在使用了大小限制为65KB的活动记录会话存储之后,会话在4kb之后被截断,这导致CRSF令牌被擦除并生成一个新的令牌。是 啊错误除非有很好的理由,否则不要在会话中存储模型对象。无论如何,我仍在试图弄清楚为什么即使在拥有活动记录会话存储之后,我仍无法在会话中存储更大的对象。

经过多次搜索,终于解决了这个问题。我将模型对象直接存储在会话中,尽管在使用了大小限制为65KB的活动记录会话存储之后,会话在4kb之后被截断,这导致CRSF令牌被擦除并生成一个新的令牌。是 啊错误除非有很好的理由,否则不要在会话中存储模型对象。无论如何,我仍在试图找出为什么即使在拥有活动记录会话存储之后,我仍无法在会话中存储更大的对象。请回答您自己的问题。所以它关闭了。谢谢。嗨,拉维,我在csfr令牌和会话方面也遇到了类似的问题。我们试图在跨域站点的iframe中加载我们的应用程序。当父站点重新加载时,我们的应用程序会话将被擦除。我们将会话存储在cookie中(仅存储用户id)。这个问题从未得到解决。只是想知道你对此的想法。