rails Сессия: срок действия cookie_store на основе

89
6

Мне нужна сессия, чтобы оставаться на 30 дней (используя рельсы 3.2, магазин cookie).

Я бы хотел не устанавливать глобальную конфигурацию в config.session_store, но передавать ее как опция, когда установлена переменная сеанса, аналогично тому, как вы можете установить истечение срока действия в cookie.

Это возможно?

Если нет, я планирую глобально установить истечение 30 дней для всех сеансов и использовать переменную date в сеансе var, чтобы выполнить сравнение/уничтожить, если необходимо (но я бы не стал гасить).

спросил(а) 2014-10-16T03:16:00+04:00 5 лет, 11 месяцев назад
1
Решение
88

Если вы используете файлы cookie, вы можете сделать это так:

cookies[:foo] = { :value => "bar", :expires => 4.weeks.from_now }

См. Http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html для получения дополнительной информации.

Я не знаю, как иметь переменную сессию истечения срока действия, вам, вероятно, придется сделать это вручную.

Что-то вроде:

def auth
if session[:foo]
reset_session if session[:last_seen] > 30.days.ago
session[:last_seen] = Time.now
end
end

ответил(а) 2014-10-16T04:29:00+04:00 5 лет, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема