首页 > 解决方案 > 不使用设计 gem,在 ruby​​ 中 x 分钟后自动注销

问题描述

我没有使用 devise gem 进行登录身份验证,如果用户处于非活动/空闲状态几分钟,我想实现自动注销功能。如何做到这一点请帮帮我。

标签: ruby-on-railsruby

解决方案


在会话中为每个用户保留少量数据记录将是适用的。例如:

{
  user_id: 1000,
  timestamp: 1588061624
}

用户登录后在会话中设置此类信息。然后在每个请求上,首先检查会话中最后一次触摸数据是否与所需的超时时间相比不够老。您可以使用类似session timestamp + timeout period > current timestamp.

如果会话仍然有效,则将时间戳更新为当前值。否则,删除用户会话并将其注销。


推荐阅读