Tag: 会话超时

Ruby on rails – Authlogic:定期检查用户会话是否有效

我正在寻找一个解决方案,允许我定期检查用户会话是否已过期,如果是,则将其重定向到登录页面。 我正在使用Authlogic gem,所以我正在做的是调用一个在current_user上进行测试的函数。 我的USER_SESSION_TIMEOUT是5分钟,所以我每隔5:10分钟进行一次这个ajax调用。 {:controller => ‘user_session’, :action => ‘check_session_timed_out’}, :frequency => (USER_SESSION_TIMEOUT + 10.seconds) %> def check_session_timed_out if !current_user flash[:login_notice] = “Your session timed out due to a period of inactivity. Please sign in again.” render :update do |page| page.redirect_to “/user_sessions/new” end else render :nothing => true end end 我注意到每次调用current_user时都会更新用户对象,因此会话更新为5分钟。 打开一个选项卡时没有问题但是如果每次调用check_session_timed_out时都有2个选项卡,则current_user将更新用户,因此会话永不过期。 任何的想法? 谢谢