Подтвердить что ты не робот

Что нужно хранить в файлах cookie для реализации "Запомнить меня" во время входа в систему

У меня есть система входа в систему для моего сайта, информация о пользователе, которая хранится в базе данных, userid (уникальная для каждого пользователя и идентификатора), адрес электронной почты (уникальное), отображаемое имя (не уникальное), пароль и membersince.
Теперь, что я должен хранить в куки? Я думал о сохранении только идентификатора пользователя в файле cookie с датой истечения срока действия, а затем, если пользователь пересматривает мой сайт после регистрации проверки файла cookie и заносит его в журнал (какой вид не подходит мне) и уничтожает файл cookie если он решает выйти из системы.
* Небольшое объяснение также будет очень полезно. Благодаря

4b9b3361

Ответ 1

Вы можете только сохранить идентификатор пользователя в cookie, если вы подписываете его с помощью секретного ключа, который только ваши приложения знают. В противном случае пользователь может изменить файл cookie на что угодно и войти как кто-то другой. Итак, если вы хотите сохранить идентификатор пользователя, сохраните также хэш идентификатора пользователя с помощью секретного ключа (в идеале используя HMAC) и когда вы хотите зарегистрировать их, вычислить один и тот же хэш и сравнить его с хэшем из файла cookie. Другое решение - создать случайный токен, сохранить его в базе данных и использовать в cookie. Если он длинный и случайный, то очень мало шансов, что кто-то угадает другой токен.

Ответ 2

PHP имеет встроенное управление сеансом, которое делает именно то, что вы ищете:

http://us.php.net/manual/en/book.session.php

Я бы не рекомендовал хранить user_id в cookie. Вместо этого вы можете создать уникальный токен и связать токен с пользователями в своей базе данных, а также проверить и регенерировать токен по каждому запросу. Опять же, это немного избыточно, потому что управление сеансом уже встроено в PHP.

Ответ 3

PHP '$ _SESSION делает это за вас. Вы можете даже написать свой собственный класс сеанса, если вам нравится полный контроль.

Небольшой учебник можно найти здесь: http://www.tizag.com/phpT/phpsessions.php

Вот небольшой пример использования mysql для хранения сеансов вместо php default (файлы в /tmp ): http://www.hawkee.com/snippet/2018/

Ответ 4

Просто добавьте, что cookie истекает до 2 дней или количество дней, которое вы хотите запомнить пользователя, и сохраните файл cookie.