Сеанс Rails не сохраняется в Rails на устройстве Android

У меня есть приложение Rails 6.1. Я храню переменную сеанса для исключенных уведомлений. Пользователь может отключить уведомление, и конкретное уведомление сохраняется в переменной сеанса.

Эта настройка отлично подходит для настольных компьютеров. Однако при открытии веб-сайта с помощью устройства Android созданный файл cookie сеанса не сохраняется после закрытия браузера. Таким образом, каждый раз, когда пользователь закрывает браузер и снова открывает его, создается новый файл cookie сеанса.

  • Проблема не связана с конкретным браузером и возникает в мобильных браузерах.
  • Я храню другие файлы cookie, которые сохраняются

Настройка следующая:

Сохраните ключ сеанса в контроллере:

      session[:disabled_notices] ||= []
session[:disabled_notices] << params[:notice]

Проверьте, если уведомление исключено из переменной сеанса в представлении:

      session[:disabled_notices].exclude?(notice_name)

session_store.rb

      Rails.application.config.session_store :cookie_store, key: '_iftf_session', domain: :all

Кто-нибудь знает, что может вызвать эту проблему? Спасибо за помощь!

1 ответ

Файл cookie сеанса удаляется при закрытии браузера, если в браузере не включена функция восстановления сеанса. Вот почему они называются сеансовыми файлами cookie. Эта функция включена не во всех браузерах.

Попробуйте сохранить этот параметр в отдельном постоянном файле cookie (файл cookie с установленным атрибутом Max-age).

https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#define_the_lifetime_of_a_cookie

Другие вопросы по тегам