Rails 3 — Логика авторизации и время истечения срока действия на странице AJAX

#ajax #ruby-on-rails-3 #authlogic

#ajax #ruby-on-rails-3 #authlogic

Вопрос:

Я установил время истечения срока действия на 10 минут. Если я простаиваю более 10 минут, поэтому после нажатия на ссылку в моем разделе администратора я буду перенаправлен на форму входа с некоторым флэш-сообщением. Это меня устраивает.

Но теперь я решаю проблему, когда я нахожусь на странице, которая была вызвана как AJAX (отображаемая JS). Если я нахожусь на этой странице без дела более 10 минут, а затем я нажму на ссылку в разделе администратора, поэтому я получу сообщение об отсутствии идентификатора (причина в том, что уже не существует сеанса с идентификатором — был уничтожен после нажатия на ссылку после 10 минут простоя).

Теперь я хотел бы узнать о помощи, как проверить, не простаиваю ли я на странице AJAX более 10 минут. Я не знаю, как это сделать.

Для обычной проверки я использую в контроллере следующие:

 acts_as_authentic do |c|
  c.logged_in_timeout(10.minutes)
end
  

Заранее благодарю вас.

Ответ №1:

Ну, я думаю, у вас есть два варианта.

Вы можете настроить локальный таймер javascript, который работает 10 минут, а затем переместить вашу страницу.

Или

При каждом запросе ajax сервер контроллера отправляет код ошибки входа в систему, который вы обрабатываете во всех своих вызовах ajax и перенаправляете, если это необходимо.