Восстановление пароля с помощью почты
Принцип восстановления пароля
Восстановление пароля подразумевает под собой первичную проверку существования пользователя по какому-то признаку, например email или номеру телефона в базе данных. Затем включает генерацию уникального кода подтверждения, отправку этого кода пользователю (например, по электронной почте или через SMS), а затем его проверку. После успешной проверки кода пользователю предоставляется возможность установить новый пароль или вернуть ошибку если код был ошибочным.
Все эти действия удобнее разделить на 2 сценария:
Сценарий: Запрос на восстановление пароля
Сценарий: Восстановление/изменение пароля
Восстановление пароля по почте с помощью формы на странице
Восстановления пароля по электронной почте начинается с того, что пользователь вводит свой email на странице восстановления пароля. Страница восстановления пароля - это обычная страница с формой, которая позволяет отправить поле с почтой пользователя в сценарий.
Вам нужны:
Страница восстановления пароля с 2 секциями с формами и настроенными условиями видимости. В первой секции в форме запрашивается почта пользователя, во второй секции в форме проверяется код и изменяется пароль, если код является верным. Каждая из форм вызывает свой сценарий.
Аккаунт в сервисе для рассылок, который поддерживает отправку писем по API, например в сервисе NotiSend и полученный API ключ для настройки интеграции.
2 сценария, первый для Запроса на восстановления пароля, второй для Восстановления/изменения текущего пароля пользователя.
Настройка сценария Запрос на восстановление пароля
Пользователь вводит свой email, запускается сценарий
Запрос на восстановления пароля.
С помощью действия
Найти одну записьищем пользователя с введенной почтой в таблице Пользователи.
Если пользователь существует в сценарии генерируется уникальный код восстановления (например, случайный набор символов с помощью формулы и сохраняется в переменную -
code).
Этот же код необходимо сохранить в базу данных, например в таблицу Пользователи, предварительно создав дополнительную колонку для его хранения. Сохранить его можно с помощью
Изменения записиранее найденного пользователя и записи переменнойcodeв созданную колонку.
В письме клиенту мы будем отправлять не просто код, а специальную ссылку с кодом. Для этого создайте в сценарии переменную
link_passwordдля хранения вашей ссылки страницы восстановления пароля.
Используя API сервиса рассылки, который позволяет отправлять письма, например NotiSend, код отправляется на электронную почту пользователя с помощью действия
HTTP-запрос
Пользователь получает письмо с кодовой ссылкой, по которой переходит и попадает на ту же страницу, но с другой секцией и формой, где предлагается ввести новый пароль. Корректность кода мы проверим уже в сценарии для восстановления/изменения пароля.
Если код совпадает с сохраненным в базе данных, пользователю предоставляется возможность установить новый пароль.
Сценарий восстановления пароля/изменения
С помощью действия
Найти одну записьнаходим пользователя с полученным из формы кодом. Если нет пользователей с таким кодом, возвращаем ошибкуНеверный код
Если пользователь с таким кодом существует, генерируем переменную
password_saltдля хранения соли пароля и переменнуюpassword_hashдля хэша пароля.
Изменяем пароль этому пользователю с помощью действия
Изменить записи. Обновить значения хэша пароля, соль пароль, сбросить код для восстановления пароля.
Примеры сценария с восстановлением по почте
Видео по настройке восстановления пароля
Видео в разработке
Остались вопросы? — Напишите нам в чат поддержки будучи авторизованным в своем аккаунте cremax.ru или через чат поддержки в Телеграме: @CreatiumMaxSupportBot