Обнаружение возвращающегося пользователя в приложении Rails3 + Devise - PullRequest
0 голосов
/ 27 июля 2011

Я ищу решение, чтобы достичь желаемого поведения. Запуск приложения Rails3, где аутентификация обрабатывается Devise. Я хочу обнаружить любого пользователя, возвращающегося на сайт, когда он уже вошел в систему (с файлом cookie remember_me).

Моя цель - перенаправить его на определенную страницу (как я уже делал на after_sign_in_path_for).

Моя проблема не в том, чтобы определить, является ли пользователь signed_in?, а в том, чтобы убедиться, что он не перемещался по сайту буквально за несколько минут до этого (я предпочитаю избегать времени на основе стратегии ...)

Есть предположения?

1 Ответ

0 голосов
/ 06 октября 2011

Мой собственный ответ на мой вопрос ...

Я слишком быстро отправил вопрос.

Решение довольно простое, Rails создает сессионный cookie после каждого запроса, нам просто нужно проверить, существует он или нет:

def user_returning?
  user_signed_in? && session[:session_id].blank?
end

Я смешивал сессию Devise, которая может существовать между закрытиями браузера и cookie-файлами сеанса, которые уничтожаются после каждого закрытия браузера.

user_returning? позвольте мне узнать, возвращается ли пользователь на сайт, когда он уже вошел в систему ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...