Нет необходимости в планировании работы здесь.Когда вы даете им идентификатор сеанса, сохраняйте идентификатор сеанса в таблице в вашей базе данных.Затем делайте это при каждом отдельном запросе:
if session id row is found
if current time - last updated time > 1 hour
Do not allow access. Session is expired
else
update timestamp of session id row, setting it to the current time
allow access
end
end
По существу: каждый раз, когда пользователь запрашивает что-либо, вы можете обновить поле метки времени в строке этого сеанса в вашей базе данных.Если текущее время - последнее обновленное время> 1 часа, то сеанс является недействительным, и вам не следует разрешать доступ.
Если вы хотите запланировать удаление задания или деактивацию строк с истекшим сроком, иначехорошо, но ваша схема управления сеансами не должна зависеть от этого.
Тем не менее, если у вас нет для управления вашим собственным управлением сеансами, не надо.Это таит в себе множество мелких деталей, которые легко упустить из виду, и может привести к тому, что ваш сайт станет уязвимым.Если вам все еще нужно выполнить свою собственную работу, ознакомьтесь с некоторыми материалами OWASP об управлении сеансами и аутентификации:
https://www.owasp.org/index.php/Session_Management_Cheat_Sheet