Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Затем код и другие данные (дата генерации кода, время хранения записи, логин, телефон, счётчик текущего кода подтверждения) сохраняются в кеш. Если необходимо, такие записи можно найти в кеше по ключу с логином. Формат ключа: "recovery_#{login}". В нашем случае сохранится запись с ключом: "recovery_sir_arthur".

Вызов скрипта для отправки сообщения

Путь к скрипту задаётся в конфиге в script_path. Это должен быть .sh скрипт, который принимает 3 параметра. Они описаны в разделе с конфигом. Предполагается, что в скрипте будет дёргаться отправка СМС сообщения на номер абонента.

После вызова скрипта абонента перебрасывает на страницу с вводом кода подтверждения.

Ввод кода подтверждения

Абонент получает код на телефон и вводит его в поле "Код". Если код совпадает с сохраненным в кеше, то абонент переходит на шаг смены пароля. Если код не приходит, то можно отправить повторно с помощью ссылки "Отправить ещё раз". Повторная отправка вызовет генерацию нового кода, вызовет скрипт для отправки СМС и обновит запись в кеше.

Для повторной отправки установлен таймаут в секундах, который задаётся в конфиге в resend_interval. Таймер с таймаутом будет работать даже после обновления страницы.

Количество повторных отправок тоже ограничено параметром в конфиге max_codes_number. Если абонент превысит число повторных отправок, то будет выведена ошибка "Превышено число повторных обращений. Обратитесь в контактный центр".

Если абонент ввёл правильный код, то его перебросит на страницу ввода нового пароля.

 

Надо понимать, что восстановление пароля и все ограничения (на таймаут, повторную отправку) действуют в течение времени жизни записи в кеше. Это значение задаётся в конфиге в cache.expiration в минутах.