好,
我们正在运行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
我很难再现这种行为,或者自己遇到这种情况。
任何实施类似系统的人都可以为手头的问题提供一些反馈/输入吗?
答案 0 :(得分:0)
其中一个原因可能是CSRF不匹配,这就是用户被注销的原因。 检查表单上是否有缓存的片段,其中CSRF存储在缓存中,在这种情况下,请尝试从缓存中省略表单。