SpikePHP
Делаю форму входа на сайт. Стал вопрос хранения пароля в куках, на случай, если пользователь нажал галочку «Запомнить меня».
Всегда хранил хэш пароля прям в куках, и потом сравнивал с хэшем в БД.
Сейчас почитал об этом, и многие говорят что так делать нельзя!А как делаете вы?
miketomlin
Как сделать авторизацию пользователя?
acso
Я взял за правило не хранить пароли пользователей в открытом виде.
PHP:
function dataAsStr($data) { } function createHash($data) { return password_hash(dataAsStr($data), PASSWORD_BCRYPT); } function checkHash($data, $hash) { return password_verify(dataAsStr($data), $hash); }Лучше создать пользователю новый пароль, если он его забыл, чем сказать, какой у него пароль.
— Добавлено —PHP:
TeslaFeo
Суть простая.
Генерируешь remember_token (который должен быть сложным, длинным и уникальным), который хранишь в куках и специально отведенном поле в БД. Проверяешь наличие токена и авторизуешь юзера.
Токен можно сделать протухающим — т е не вечным.
Для этого в БД еще нужно хранить дату его протухания и сравнивать с текущей.
— Добавлено —
Вот тебе функция для генерации токена. Передаешь необходимую длину — получаешь токен.PHP:
SpikePHP
Спасибо за ответы! Разобрался в вопросе