Обнаружение истекших сессий - PullRequest
0 голосов
/ 01 ноября 2011

Так что я ограничил TTL сессий в моем приложении.После этого времени бездействия пользователь больше не может ничего делать, не будучи автоматически перенаправлен на страницу входа в систему при выполнении запроса на страницу, где пользователь должен войти в систему.

Но это не такдействительно удобный для пользователя.Пользователи будут просто перенаправлены на страницу входа без предварительного уведомления и объяснения причин, по которым это произошло.

Я хочу уведомить своих пользователей сообщением на странице входа, что их запрос был завершен из-за неактивности ичто им нужно войти снова.Так что было бы подходящим способом решить эту проблему?

1 Ответ

1 голос
/ 01 ноября 2011

PHP автоматически очищает сеансы с истекшим сроком действия, которые являются частью запуска «до запуска вашего кода», на основе настроек вероятности / интервалов , указанных в INI-файле. Это выполняется автоматически и за пределами вашей компетенции. Если вам нужно контролировать (или отслеживать) сеансы с истекшим сроком действия, то вы должны отключить сборщик мусора PHP и запустить свой собственный. Он будет отвечать за периодическое сканирование вашего носителя сессий (файлов, базы данных, платы ouija и т. Д.) На наличие истекших сеансов и их удаление.

Лучшим вариантом было бы просто иметь долгоживущие файлы сеанса и как-то регистрировать время последнего доступа в сеансе. Либо «прошло> XXX минут с тех пор, как вы в последний раз что-то сделали, пожалуйста, проверьте, что вы», либо «прошло XXX минут с тех пор, как вы вошли в систему», и т. Д. *

Это избавляет вас от необходимости накатывать свой собственный обработчик истечения сеанса и по-прежнему оставляет пользователей «залогиненными», и просто необходимо проверить их статус.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...