我的理解是rails中的CSRF令牌存储在会话中,除非调用reset_session或由于某种原因会话被销毁,否则不应重置.
但是在远程表单通过AJAX加载的某些地方,它包含与该页面上Meta标记中指定的不同的真实性标记.因此,在提交该表单时导致无效的令牌错误和reset_session.
def form_authenticity_token session[:_csrf_token] ||= SecureRandom.base64(32)end
我无法确定会话[:_ csrf_token]被破坏并创建新令牌的有效进行会话?
解决方法 经过大量的狩猎,终于找到了这个问题.我直接在会话中存储模型对象,尽管使用了大小限制为65KB的活动记录会话存储,但会话在4kb之后被截断,这导致CRSF令牌被擦除并生成新的令牌.是啊!失误……永远不要在会话中存储模型对象,除非你有充分的理由不这样做.无论如何仍然试图弄清楚为什么即使在拥有一个活跃的记录会话存储后,我也无法在会话中存储更大的对象. 总结以上是内存溢出为你收集整理的ruby-on-rails-3.2 – CSRF令牌会话被重置全部内容,希望文章能够帮你解决ruby-on-rails-3.2 – CSRF令牌会话被重置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)