在我的Rails应用中,我有sessions_helper
这样的话:
def sign_in(user)
token = User.generate_token
if params[:remember_me]
cookies.permanent[:remember_token] = token
else
cookies[:remember_token] = token
end
self.current_user = user
end
def sign_out
cookies.delete(:remember_token)
self.current_user = nil
end
现在,出于安全原因,如果用户已经处于非活动状态(例如30分钟),则自动注销用户会很不错。
在Rails中实现这一目标的最佳方法是什么?
我在考虑在prepend_before_filter
中使用ApplicationController
,只要用户在应用程序中执行某些内容,就会将用户Cookie的生命周期再延长30分钟。
但是从安全角度推荐这种方法吗?
感谢您的任何意见。
答案 0 :(得分:0)
我使用类似的方法,但我使用的是会话而不是cookie。我在我的应用程序控制器中有一个'authenticate'动作,由每个控制器的before_filter触发,这个动作戳了'session [:accesses]'来添加1,这反过来更新了数据库中的'updated_at'列。然后我有一个cron作业,从数据库中删除任何在20分钟内没有更新的会话。