@happyman1

Востановление пароля, как сгенерировать случайную ссылку?

Есть проект с регистрацией, нужно сделать возможность восстановления пароля при переходе по ссылке из почтового ящика. При этом не передавая в get параметр email пользователя, т.к. могут быть проблемы безопасности, а просто передавать ссылку, как например при востановлении доступа на популярных сервисах, строка такого типа https://domain.com/apassword/2cg4ao-009ffe01c855d9...
Как получить уникальную строку в б.д., чтоб при восстановлении доступа можно было на неё опираться.
  • Вопрос задан
  • 173 просмотра
Пригласить эксперта
Ответы на вопрос 2
@hscode
Это легко, в таблице Users при создание пользователя добавь поле varchar 255 назови его recovery_token.
В него записывай эту переменную $recovery_token = md5(uniqid(rand(), true));
это рандомная строка.
И потом по ней уже и востанавливай пароль пользователя.
Ответ написан
Комментировать
@Arik
php.net/manual/en/function.random-bytes.php
если старая php то https://github.com/paragonie/random_compat
ну или самому сгенерировать
при этом тип поля должен быть binary, а то половина отпадает + время жизни не более 20 мин или часа. лучше для этого отдельную модель/таблицу
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы