удаляются с браузера через час после авторизации, но с дб - нет. Из-за этого происходит рассинхрон, если пользователь сидит на сайте больше часа не переавторизовываясь. Слышал, что убирать expirationDate не вариант. Каким образом можно решить данную проблему? Можно ли каким-то образом сделать так, чтобы сессия удалялась с дб через какое-то время неактивности? И чтобы это работало к каждому пользователю отдельно.
Redis?
sqlite3 Меня больше интересует, как можно сделать так, чтобы сессии автоматически удалялись с дб.
К каждой сессии в базе прописываете время протухания и делаете кронджобу или что-то подобное, которая раз в минут(час?) удаляет протухшие сессии Sqlite на сайте это что-то новенькое
Так по заданию нужно.
Ну в любом случае, вот вариант
Ок, спасибо, попробую имплементировать.
Никогда не любил решения «раз в час». Если что-то должно протухнуть через час, то надо тухнуть через час, а не раз в час
Не нужно ничего удалять, нужно просто делать выборку select ... from sessions where sid = ? AND expire < NOW()
ну выбирайте из бд только те сессии, которые младше часа а от протухших, таблицу можно периодически чистить, чтобы не пухла
ну вот это решение простейшее же под требования автора
*грустные всхлипы сборщика мусора*
Обсуждают сегодня