Время жизни сессии

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
Otor
Сообщения: 1
Зарегистрирован: 2016.12.20, 09:14

Время жизни сессии

Сообщение Otor »

Насколько я понял в данный момент механизм сессии в yii работает так, что время жизни сессионных данных считается от последнего изменения этих данных, и php автоматически меняет время изменения при каждом обращении к сессии, т.е. данные не очищаются пока они используются. Но при этом cookie с id сессии никак не меняется, т.е. получается, что когда умрет cookie сессионные данные могут еще жить и если требуется продление сессии при активности, нужно вручную перезаписывать cookie. Соответственно есть вопрос, может есть смысл добавить обновление cookie при каждом обращении к сессии в yii\web\Session?
rkk
Сообщения: 40
Зарегистрирован: 2016.03.04, 19:33

Re: Время жизни сессии

Сообщение rkk »

Коммент немного, не в тему, я еще сам не разобрался как работают сессии. Может знающие люди объяснят.
Я ставил себе модуль файлового менеджера, какой к сожалению уже не помню. Когда я на него переходил, у меня слетали права доступа, мне приходилось заново авторизироваться, покопавшись немного я заметил, что у меня менялась сессия (id session) при этом модуль был в рамках одного проекта, url сайта при переходе на файловый менеджер не менялся (т.е. Оставался http://yii_test.local/...). Но когда я закрывал файловый менеджер у меня восстанавливалась предыдущая сессия (id сессии и все данные). Получается сессия хранится в базе достаточно длительное время (у меня было около суток) и ее можно вытащить от туда зная id.
Понимаю это по сути не о чем, но возможно натолкнет вас куда копать дальше.
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Время жизни сессии

Сообщение Nex-Otaku »

Otor, куки как раз и используется для установки приадлежности сессии. "Ага, у пользователя указан такой-то ID сессии в куках, вот ему эта сессия".

Если пользователь "потерял" куки, то никакой возможности установить, какая сессия ему нужна, нет. По крайней мере, стандартными средствами.

Поэтому и "обновлять куки" не имеет смысла - если сессионного куки нет, то всё, пользователь считается новым, ему выдаётся новая "чистая" сессия и новые куки.
Ответить