Как отобразить предупреждающее сообщение для пользователя о предстоящем тайм-ауте сеанса в Ruby on Rails? - PullRequest
0 голосов
/ 01 апреля 2019

Я хотел бы отобразить предупреждение о тайм-ауте для пользователя (какой-то отсчет, скажем, за 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

Но я не знаю, как отобразить предупреждение 2 минутыbefore время ожидания сеанса.Пожалуйста, помогите!

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

хорошо, вы также можете установить expire_at в сеансе

session[:expire_at] = Time.current + 24.hours

Затем, каждые две минуты отправлять на сервер запрос ajax

и проверять условие ниже

if Time.current - session[:expires_at] < 2.minutes
  # show warning
end
1 голос
/ 01 апреля 2019

вы можете использовать фильтр before_action в application_controller.rb как

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...