我们可以为特定的Sessoin设置会话超时吗

时间:2018-12-21 06:48:44

标签: ruby-on-rails session login devise two-factor-authentication

我目前正在设计设备的两层身份验证,并且想在临时会话中存储用户ID 2分钟,我是否只能为此会话设置超时时间。

session[:user_id] = "USER_ID_HERE"

我想要这样的东西:-

session[:user_id].timeout = 2.minutes

预先感谢

1 个答案:

答案 0 :(得分:1)

对于该会话,您也只能将当前时间存储在会话中:

session[:user_id] = "USER_ID_HERE"
session[:expires_at] = Time.current + 2.minutes

然后,在before_action中定义一些检查方法:

if session[:expires_at] < Time.current
  session.delete(:user_id)
  session.delete(:expires_at)
end