Установить дату начала и срок действия файлов cookie Rails
Как настроить cookie файл Rails для запуска и/или истечения срока действия в определенную дату?
Ответы
Ответ 1
Выдержки из документации по Rails 5:
Файлы cookie считываются и записываются с помощью файлов cookie ActionController #.
Считываемые файлы cookie - это файлы, полученные вместе с запросом; записанные файлы cookie будут отправлены вместе с ответом. Чтение cookie не возвращает сам объект cookie, а только его значение.
Примеры написания:
# Sets a simple session cookie.
# This cookie will be deleted when the user browser is closed.
cookies[:user_name] = "david"
# Sets a cookie that expires in 1 hour.
cookies[:login] = { value: "XJ-122", expires: 1.hour }
# Sets a cookie that expires at a specific time.
cookies[:login] = { value: "XJ-122", expires: Time.utc(2020, 10, 15, 5) }
# Sets a "permanent" cookie (which expires in 20 years from now).
cookies.permanent[:login] = "XJ-122"
[...]
Опциональные символы для настройки файлов cookie:
-
:expires
- время истечения срока действия этого файла cookie в виде объекта Time или ActiveSupport :: Duration.
[...]
Ответ 2
ваш вопрос может быть связан с этим вопросом:
Как мне динамически установить время истечения срока для сеанса на основе cookie в Rails
один из комментариев указывает на Устаревшие слайды:
". Если вам нужно установить срок действия для сеансов через все контроллеры в вашем приложении, просто добавьте следующий вариант для вашего конфиг/инициализаторы/session_store.rb Файл:
:expire_after => 60.minutes
Если вам нужно установить разные срок годности в разных контроллеров или действий, используйте следующий код в действии или некоторые before_filter:
request.session_options = request.session_options.dup
request.session_options[:expire_after]= 5.minutes
request.session_options.freeze
Дублирование хэша необходимо только потому что он уже заморожен при этом хотя изменение в наименьшее: expire_after возможно и работает безупречно... "
Надеюсь, это поможет.:)
Ответ 3
Стоит отметить, что на данный момент невозможно установить начальное время для файла cookie. Набор cookie всегда активен сразу.