как сделать время жизни сессии вечной ?

asker23

Новичок
Интересует теоритический вопрос, понятно, что сессия хранится на сервере, а id сессии в куке браузера, но кука живет до закрытия браузера или какоето время которое нужно устанавливать, а как сделать чтобы она была вечной ? те чтобы клиент на сайте оставался всегда залогиненым, даже через год, пока сам не разлогинется.
 

Фанат

oncle terrible
Команда форума
не заниматься бессмысленными вещами типа хранения сессии на сервере в течение года, а просто поставить уникальную неугадываемую куку, разумеется.
 

Redjik

Джедай-мастер
По каждому запросу серриализовывать сессию и кидать то, что получилось в бд. По уникальному ключу в куке восстанавливать сессию из бд. Если не ошибаюсь у зенда так устрлен механизм.
 

Beavis

Banned
для того чтобы клиент оставался всегда залогиненным, не надо делать время жизни сессии вечной
сессия - на то она и сессия, чтобы начаться когда клиент пришел, и завершиться, когда он ушел
а когда пришел вновь - надо начать новую сессию, но загрузить в неё данные о клиенте, основываясь на уникальной для клиента куке, которая надолго устанавливается ему при выборе галочки "запомнить меня"
 

workOnFood

Новичок
не это
я не говорил что надо что-то сериализовывать и класть в базу
А как еще определить что пользователь имеющий данную конкретную куку в браузере должен быть аутентифицирован, и определить кто этот пользователь( какой записи в таблице юзеров соответствует данная кука) ? Я не понимаю. Мне кажется, если сериализовать ничего и не надо, но вот уникальный ключ и id пользователя в базу все-таки нужно положить...
 

Фанат

oncle terrible
Команда форума
можно обойтись без этого, если воспользоваться функцией хэширования
 

workOnFood

Новичок
Да действительно, я об этом не подумал. Можно сделать хеш всех или нескольких полей из таблицы юзеров и использовать его как уникальный ключ который будет храниться в куках, а при повторном заходе сделать проверку и создать сессию если хеши совпадут. Спасибо.
 
Сверху