我想向用户显示超时警告(某种倒计时,例如会话超时前2分钟)
我不确定如何显示警告before
超时
我目前在ApplicationController
类中使用以下代码来检查每次按下控制器时用户是否已登录/有效:
def check_login
logger.info "ApplicationController check_login"
if session[:current_user]
<do something>
else
redirect_to login_path, flash: {notice: 'We require you to sign in.'}
end
end
但是我不知道如何在before
2分钟的会话超时中显示警告。请帮忙!
答案 0 :(得分:1)
您可以在application_controller.rb中使用before_action过滤器,例如
Class ApplicationController
before_action :check_session_has_expired
def check_session_has_expired
if !session[:user].present?
redirect_to :session_warning_url
end
end
end
答案 1 :(得分:1)
好的,您还可以在会话中设置expire_at
session[:expire_at] = Time.current + 24.hours
然后,每两分钟向服务器发出ajax请求
并检查下面的条件
if Time.current - session[:expires_at] < 2.minutes
# show warning
end