【问题标题】:Can We Set Session Time-Out for a Specific Sessoin我们可以为特定会话设置会话超时吗
【发布时间】:2019-05-21 15:56:02
【问题描述】:
我目前正在设计上进行双重身份验证,并希望将用户 ID 存储在临时会话中 2 分钟,我只能为此会话设置超时。
session[:user_id] = "USER_ID_HERE"
我想要这样的东西:-
session[:user_id].timeout = 2.minutes
提前致谢
【问题讨论】:
标签:
ruby-on-rails
session
login
devise
two-factor-authentication
【解决方案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