我为我的会话使用Rails 3.2.3和active_record_store。CSRF令牌会话得到重置
我的理解是,轨道中的CSRF令牌存储在会话中,除非调用reset_session或由于某种原因会话被销毁,否则不应该重置。
但是,在某些地方,当通过ajax加载远程表单时,它包含与该页面上的META标记中指定的不同的真实性标记。因此在提交表单时导致无效的标记错误和reset_session。
def form_authenticity_token
session[:_csrf_token] ||= SecureRandom.base64(32)
end
我不能为一个有效的数字对正在进行的会话为什么会话[:_ csrf_token]越来越被破坏,创造一个新的令牌?
经过大量的狩猎,终于想出了这个问题。我直接在会话中存储模型对象,即使在使用大小限制为65KB的活动记录会话存储之后,会话在4kb之后也会被截断,导致CRSF令牌被擦除并生成新的会话。 是啊! Blunder ...除非你有很好的理由不这样做,否则不要在会话中存储模型对象。无论如何,仍然试图找出为什么即使有一个活跃的记录会话存储后,我无法在会话中存储更大的对象。 – Ravi
请回答你自己的问题。所以它关闭了。谢谢。 – Roger