Вы должны добавить метку времени к идентификатору сеанса в базе данных, чтобы узнать, когда он закончился.
Лучше сделайте временную метку частью самого идентификатора сеанса, например ::1003
Set-Cookie: session=1272672000-(random_number);expires=Sat, 01-May-2010 00:00:00 GMT
чтобы ваш сценарий мог видеть, просто посмотрев на номер спереди, является ли он действительным идентификатором сеанса.
Еще лучше: сделайте метку времени истечения и частью идентификатора пользователя идентификатора сеанса и сделайте бит в конце криптографическим хешем идентификатора пользователя, времени истечения и секретного ключа. Затем вы можете проверить ID и знать, к какому пользователю он принадлежит, без необходимости что-либо хранить в базе данных. ( Связанный пример PHP .)