【问题标题】:Why are my Rails sessions and cookies not persisting?为什么我的 Rails 会话和 cookie 不持久?
【发布时间】:2014-09-06 05:14:19
【问题描述】:

我有一个带有基本设计的 Rails 4.0/Ruby 2.0 应用程序,我添加了一个功能,通过对相关控制器的 ajax 调用来保留主索引页面过滤器设置,该控制器将它们存储在 session[:filter] .会话数据(通过 CookieStore 的方式)不会像往常那样跨请求持久化。我也尝试过使用 cookie 对象和设计的 user_session 以及相同的结果。

设计会话数据适用于身份验证。除了这个,我没有做其他的会话任务。我应该在 中寻找什么吗?

【问题讨论】:

    标签: ruby-on-rails devise cookiestore


    【解决方案1】:

    我将验证 ajax 调用是否将真实性令牌作为参数传递。如果 ajax 调用中不存在真实性令牌,Rails 将清除会话,这来自 application_controller.rb 中的这行代码:

    protect_from_forgery
    

    【讨论】:

    • 谢谢。虽然我的解决方案是使用 activerecord::store 代替(即时满足),但我接受了这个答案,因为它几乎肯定指向正确的方向......在大多数 Rails 入门中,Ajax 和会话安全性都被忽视了。
    • 我今天遇到了这个问题。我在一个操作中设置了一个 cookie 或会话变量,而在另一个操作中,该值为 nil。甚至不涉及ajax。只是在 show 动作中设置一个 cookie/session 变量,并在新动作中获得一个 nil 值。 @DanHoyt
    猜你喜欢
    • 2013-04-28
    • 2013-09-06
    • 2013-03-06
    • 2022-11-27
    • 2016-08-10
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多