В моем Rails-приложении есть поле для входа с флажком «запомнить меня». Пользователи, установившие этот флажок, должны оставаться в системе даже после закрытия браузера. Я отслеживаю, вошли ли пользователи, сохранив их идентификатор в сеансе пользователя.
Но сеансы реализованы в Rails как сеансовые куки, которые не являются постоянными. Я могу сделать их постоянными:
class ApplicationController < ActionController::Base
before_filter :update_session_expiration_date
private
def update_session_expiration_date
options = ActionController::Base.session_options
unless options[:session_expires]
options[:session_expires] = 1.year.from_now
end
end
end
Но это похоже на взлом, что удивительно для такой распространенной функциональности. Есть ли лучший способ?
Редактировать
Ответ Гарета довольно хороший, но мне все равно хотелось бы получить ответ от кого-то, знакомого с Rails 2 (из-за его уникальности CookieSessionStore
).