Время жизни сессии
Время жизни сессии
Насколько я понял в данный момент механизм сессии в yii работает так, что время жизни сессионных данных считается от последнего изменения этих данных, и php автоматически меняет время изменения при каждом обращении к сессии, т.е. данные не очищаются пока они используются. Но при этом cookie с id сессии никак не меняется, т.е. получается, что когда умрет cookie сессионные данные могут еще жить и если требуется продление сессии при активности, нужно вручную перезаписывать cookie. Соответственно есть вопрос, может есть смысл добавить обновление cookie при каждом обращении к сессии в yii\web\Session?
Re: Время жизни сессии
Коммент немного, не в тему, я еще сам не разобрался как работают сессии. Может знающие люди объяснят.
Я ставил себе модуль файлового менеджера, какой к сожалению уже не помню. Когда я на него переходил, у меня слетали права доступа, мне приходилось заново авторизироваться, покопавшись немного я заметил, что у меня менялась сессия (id session) при этом модуль был в рамках одного проекта, url сайта при переходе на файловый менеджер не менялся (т.е. Оставался http://yii_test.local/...). Но когда я закрывал файловый менеджер у меня восстанавливалась предыдущая сессия (id сессии и все данные). Получается сессия хранится в базе достаточно длительное время (у меня было около суток) и ее можно вытащить от туда зная id.
Понимаю это по сути не о чем, но возможно натолкнет вас куда копать дальше.
Я ставил себе модуль файлового менеджера, какой к сожалению уже не помню. Когда я на него переходил, у меня слетали права доступа, мне приходилось заново авторизироваться, покопавшись немного я заметил, что у меня менялась сессия (id session) при этом модуль был в рамках одного проекта, url сайта при переходе на файловый менеджер не менялся (т.е. Оставался http://yii_test.local/...). Но когда я закрывал файловый менеджер у меня восстанавливалась предыдущая сессия (id сессии и все данные). Получается сессия хранится в базе достаточно длительное время (у меня было около суток) и ее можно вытащить от туда зная id.
Понимаю это по сути не о чем, но возможно натолкнет вас куда копать дальше.
Re: Время жизни сессии
Otor, куки как раз и используется для установки приадлежности сессии. "Ага, у пользователя указан такой-то ID сессии в куках, вот ему эта сессия".
Если пользователь "потерял" куки, то никакой возможности установить, какая сессия ему нужна, нет. По крайней мере, стандартными средствами.
Поэтому и "обновлять куки" не имеет смысла - если сессионного куки нет, то всё, пользователь считается новым, ему выдаётся новая "чистая" сессия и новые куки.
Если пользователь "потерял" куки, то никакой возможности установить, какая сессия ему нужна, нет. По крайней мере, стандартными средствами.
Поэтому и "обновлять куки" не имеет смысла - если сессионного куки нет, то всё, пользователь считается новым, ему выдаётся новая "чистая" сессия и новые куки.