用户在切换到Redis缓存后注销

时间:2015-09-23 13:35:44

标签: ruby-on-rails ruby session caching redis

好,

我们正在运行Ruby on Rails应用程序,最近刚从会话的标准cookie存储库切换到会话存储的实际Redis缓存。

我们现在收到零星的报告,说人们失去了登录会话,需要再次登录该应用程序。

我们的Redis已配置tp持久保存信息,我们没有明确调用Rails.cache.clear或其他任何内容。 我们的Cache的实现如下:

class Application < Rails::Application
  # Redis Cache Configuration.
  config.cache_store = :redis_store, Chamber[:redis][:cache]
  config.session_store :redis_store,
    redis_server: Chamber[:redis][:cache],
    key: Chamber[:redis][:session_key],
    expire_after: 1.year
  config.action_dispatch.rack_cache = {
    metastore: "#{Chamber[:redis][:cache]}/metastore",
    entitystore: "#{Chamber[:redis][:cache]}/entitystore"
  }
end

我很难再现这种行为,或者自己遇到这种情况。

任何实施类似系统的人都可以为手头的问题提供一些反馈/输入吗?

1 个答案:

答案 0 :(得分:0)

其中一个原因可能是CSRF不匹配,这就是用户被注销的原因。 检查表单上是否有缓存的片段,其中CSRF存储在缓存中,在这种情况下,请尝试从缓存中省略表单。