Я использую Zend_Session
для управления моими пользовательскими сеансами, и я пытался реализовать опцию "Запомнить меня" в моем приложении, чтобы пользователи не вошли в систему в течение 2 недель или около того.
Я заметил, что Zend_Session
уже имеет встроенную функцию под названием Zend_Session::rememberMe
, однако я не уверен, правильна ли эта логика функций для использования в качестве сохраненного входа.
По сути, функция rememberMe просто увеличивает срок действия активного сеанса, что означает, что если пользователь использует опцию "запомнить меня", он будет оставаться включенным в течение 2 недель с активной сессией.
Это вызывает две основные проблемы.
- Я храню сеансы в базе данных, что означает, что все эти неактивные пользователи хранятся в течение 2 недель в моей таблице сеансов. У меня более 50 тыс. Неактивных сессий, и это вредит производительности приложения.
- Я хочу узнать, вернулся ли пользователь на сайт после 24 часов бездействия и повторно подтвердил свою информацию. Поскольку его сеанс остается открытым, я не могу сказать, вернулся ли он через 1 час или 1 неделю, так как он имеет тот же самый активный идентификатор сеанса.
Я читал, что если я хочу реализовать функцию "запомнить меня", я не должен использовать для этого cookie сеанса, и я должен создать еще один "cookie для входа", чтобы запомнить хешированный user_id и токен. здесь полное объяснение: Каков наилучший способ реализации "запомнить меня" для веб-сайта?
Итак, почему платформа zend предлагает такую функцию, если ее использование может создать проблемы с производительностью и безопасностью?