Если вы явно не установите срок действия файла cookie браузера, добавив Expires=<date>
к заголовку Set-Cookie
, файл cookie считается файлом сеанса и отбрасывается в том виде, в котором браузер считает конец сеанса.
Большинство браузеров настольных компьютеров имеют возможность «продолжить с того места, где вы остановились», что позволяет сохранять и восстанавливать сеансы (и файлы cookie сеанса) между запусками, поэтому файлы cookie сеанса могут долго храниться на рабочем столе.Я не могу найти документацию по браузерам iOS, но подозреваю, что они просто закрывают сеансы и удаляют куки в какой-то момент, когда считают, что вы «сделали».
Решение состоит в том, чтобы явно установить дату истечения срока действия куки.Из-за сообщений о проблемах с Safari на iOS, я также рекомендую установить домен cookie.Начиная с Rails 5.2, вы можете использовать проходную длительность (ранее и в заголовке Set-Cookie
необходимо указать определенную временную метку):
cookies[:name] = {
value: 'a yummy cookie',
expires: 1.year,
domain: 'domain.com'
}
См. Документацию по Rails API для получения дополнительной информации.