# Сессия в ЛК: логика и диагностика

**Логика:** токен хранится в куке `hoton_session`, при каждом запросе проверяется по таблице `users_session`: запись с таким `session_token`, `is_active = 1` и `created_at` не старше 30 дней. Если токен есть и с момента создания сессии не прошло 30 дней — сессия считается открытой.

**Срок:** 30 дней от `created_at` (везде в коде проверка: `created_at > DATE_SUB(NOW(), INTERVAL 30 DAY)`). Кука при логине выставляется на 30 дней.

Если выход из учётки всё ещё случается:
- Проверить в браузере наличие и срок куки `hoton_session` (path `/`).
- В БД: `SELECT id, user_id, created_at, expires_at, is_active FROM users_session WHERE session_token = '...'` — запись должна быть с `is_active = 1` и `created_at` не старше 30 дней.
- Часовой пояс MySQL: `SELECT @@session.time_zone, NOW();` — для сравнения с `created_at` используется только `NOW()` MySQL.
