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

  • Автор темы Автор темы asker23
  • Дата начала Дата начала

asker23

Новичок
Интересует теоритический вопрос, понятно, что сессия хранится на сервере, а id сессии в куке браузера, но кука живет до закрытия браузера или какоето время которое нужно устанавливать, а как сделать чтобы она была вечной ? те чтобы клиент на сайте оставался всегда залогиненым, даже через год, пока сам не разлогинется.
 
не заниматься бессмысленными вещами типа хранения сессии на сервере в течение года, а просто поставить уникальную неугадываемую куку, разумеется.
 
По каждому запросу серриализовывать сессию и кидать то, что получилось в бд. По уникальному ключу в куке восстанавливать сессию из бд. Если не ошибаюсь у зенда так устрлен механизм.
 
для того чтобы клиент оставался всегда залогиненным, не надо делать время жизни сессии вечной
сессия - на то она и сессия, чтобы начаться когда клиент пришел, и завершиться, когда он ушел
а когда пришел вновь - надо начать новую сессию, но загрузить в неё данные о клиенте, основываясь на уникальной для клиента куке, которая надолго устанавливается ему при выборе галочки "запомнить меня"
 
не это
я не говорил что надо что-то сериализовывать и класть в базу

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