Я использую Rack, чтобы попытаться реализовать функцию «Запомнить меня» в моем приложении Sinatra.Установить истечение сеанса cookie в стойке программно
Я могу установить, что cookie сеанса истекает, когда сессия заканчивается или в X секунд, но я хотел бы сделать то и другое.
Например, если пользователь нажал «запомнить меня», то я желаю, чтобы их сессия закончилась через X секунд. Например, мой app.rb имеет строку, которая выглядит следующим образом:
use Rack::Session::Cookie, :expire_after => 2592000, #30 days in seconds
:secret => MY_SECRET
я попытался сделать следующее, когда пользователь входит в систему:
if (!remember_me)
env['rack.session.options'][:expire_after] = nil
end
Однако это не устанавливает куки стоимость.
Кто-нибудь знает, как установить это?
Заранее спасибо.
Не забывайте, что если впоследствии вы установите или удалите что-либо в хэше сеанса, cookie вернется к дате истечения по умолчанию (т. Е. К файлу сеанса). Чтобы это продолжалось с помощью последующих изменений, вам нужно будет сохранить флаг, также отмечающий статус «запомнить меня» в самом хэше сеанса. –