В настоящее время мое внутреннее приложение Rails 5.2 управляет API, работающим только с сессиями.
App::Application.config.session_store :active_record_store
В приложении я управляю сессией [: user_id], чтобы знать, когда пользователь вошел в систему или нет.Сегодня мне нужно улучшить клиентское приложение (iOS) для хранения, если пользователь вошел в систему или нет.Итак, моя первая идея состояла в том, чтобы изменить дату истечения срока действия в:
App::Application.config.session_store :active_record_store, expire_after: 1.day
Это работает, но cookie, созданный для хранения session_id, обновляется при каждом запросе ... поэтому дата истечения не определена.
Поэтому я решил добавить новый файл cookie, когда пользователь вошел в систему:
cookies[:logged_in] = { value: 1, expires: 1.day }
Этот файл cookie не обновляется при каждом запросе и сохраняет дату истечения срока действия.Это то, что я хочу.
Проблема в том, что я не знаю, как управлять вместе файлом cookie и сеансом, содержащим идентификатор пользователя.Даже если я сохраню файл cookie и проверим его срок действия в клиентском приложении, session_id, содержащий user_id, истечет по умолчанию, когда клиентское приложение будет закрыто или браузер закрыт.И если я добавлю «expire_after: 1.day» к сеансу, они не будут иметь одинаковую дату истечения срока действия.
Поэтому мой вопрос заключается в том, как управлять датой истечения срока действия сеанса [: user_id] и cookie [:logged_in] срок годности вместе?Что я пропустил?
РЕДАКТИРОВАТЬ: больше информации.Я хочу, чтобы сессия [: user_id] сохраняла user_id, как и прежде, в базе данных, но я хочу, чтобы пользователь регистрировался, например, в течение 1 года ... даже если cookie-файл сеанса по умолчанию заканчивается, когда закрывается приложение браузера / клиента.Я не хочу, чтобы cookie, даже подписанный, сохранял user_id, если это возможно ... Так что проблема в том, что произойдет, когда cookie [: logged_in] не истек на клиенте, но сеанс, содержащий user_id, истек... Как управлять этим на стороне Rails?