清除rails中特定用户的会话存储

时间:2018-05-07 13:56:25

标签: ruby-on-rails

我使用session_store cookie_store来保存rails 4应用程序的会话。这里是我的代码





Rails.application.config.session_store:cookie_store,key:'_ app_session'





我的问题我如何使特定用户的会话无效?




1 个答案:

答案 0 :(得分:0)

您只能通过调用使其会话ID无效的reset_session来使当前用户的会话无效。

服务器不知道哪个会话ID与cookie_store的(数据库)用户ID相关联。它只跟踪有效会话标识符列表。如果cookie中提供的会话标识符有效,则Rails将对会话存储cookie进行解密和反序列化。这是存储用户标识的位置。由于用户id由客户端存储,因此无法遍历会话存储并从用户ID中查找会话标识符。

如果要密切关注用户会话,则需要使用不同的系统,例如使用memcached或数据库会话存储或访问令牌授权。