Восстановление доступа по SMS помогает клиенту вернуть аккаунт, если он забыл пароль или потерял сессию входа. Для малого бизнеса важно заранее описать весь сценарий: запрос сброса, проверку номера, отправку одноразового кода, создание нового пароля и завершение операции. В статье разберём, как выбрать формат сообщения, ограничить попытки, обработать ошибки доставки и проверить путь пользователя до запуска.
Как должен выглядеть сценарий сброса пароля?
Пользователь начинает с кнопки «Забыли пароль?». Сервис просит указать номер телефона или логин, после чего показывает нейтральный ответ: «Если данные найдены, мы отправили код». Такой текст не раскрывает, зарегистрирован ли номер в системе.
Затем сервис создаёт одноразовый код и отправляет его на номер, который уже связан с аккаунтом. Код нужно привязать к конкретной операции: восстановлению доступа, а не просто к факту отправки SMS. Если клиент запросит новый код, предыдущий должен перестать действовать.
- Клиент вводит номер телефона или логин.
- Сервис создаёт одноразовый код и отправляет SMS.
- Клиент вводит код на странице восстановления.
- Сервис проверяет код и разрешает задать новый пароль.
- После смены пароля система завершает старые активные сессии, если это предусмотрено вашей моделью безопасности.
Не смешивайте код подтверждения и новый пароль в одном сообщении. SMS должно содержать только то, что нужно для текущего шага. Например: «Код для восстановления доступа: 482731. Никому не сообщайте код». Число в примере условное, в рабочем шаблоне код генерирует система.
Для регистрации, входа, платежа и восстановления доступа нужны разные сценарии подтверждения. Разбор выбора сценария для этих операций есть в материале как выбрать сценарий SMS-кода для регистрации и входа. Для восстановления пароль меняют только после успешной проверки кода.
Какие настройки нужны для одноразового SMS-кода?
В панели сервиса или в техническом задании зафиксируйте параметры кода. Это избавит разработчика и менеджера от разных трактовок одной операции.
| Параметр | Практическая настройка |
|---|---|
| Срок действия | Ограниченный промежуток времени, после которого код отклоняется. |
| Повторная отправка | Пауза между запросами, чтобы пользователь не получил несколько SMS подряд. |
| Количество попыток | Ограничение неверных вводов для одной операции восстановления. |
| Повторный код | Новый код отменяет предыдущий, если клиент запросил SMS повторно. |
| Текст сообщения | Название сервиса, назначение кода и короткое предупреждение не сообщать его другим. |
| Журнал событий | Фиксация времени запроса, результата проверки и технической ошибки без показа лишних сведений клиенту. |
Срок действия выбирают с учётом реальной доставки SMS и времени, которое клиент тратит на ввод. Слишком короткий интервал создаёт повторные запросы, слишком длинный оставляет действующий код без необходимости. Конкретное значение лучше определить тестированием на вашем сайте и у вашей SMS-платформы.
Код должен быть случайным и одноразовым. Нельзя строить его из номера телефона, даты рождения, последних цифр договора или другой предсказуемой комбинации. Генерацию выполняет сервер, а проверка проходит на сервере, поэтому браузер не должен самостоятельно решать, правильный ли код ввёл клиент.
Как написать SMS, чтобы клиент понял следующий шаг?
В сообщении сразу укажите причину отправки. Фраза «Ваш код: 482731» слабее, чем «Код для восстановления доступа к аккаунту: 482731». Пользователь видит, какое действие он начал, и может заметить подозрительное SMS, если сам ничего не запрашивал.
- Назовите сервис или приложение.
- Объясните назначение кода.
- Покажите код без лишних символов.
- Добавьте короткую фразу о том, что код нельзя сообщать другим.
- Не вставляйте в SMS пароль, паспортные сведения и инструкции для передачи кода сотруднику.
После успешной проверки покажите понятное сообщение на сайте: «Код подтверждён. Придумайте новый пароль». После сохранения пароля сообщите: «Пароль изменён. Войдите с новым паролем». Если операция завершилась ошибкой, клиенту нужно предложить конкретное действие: запросить новый код, проверить номер или обратиться в поддержку.
Для разных каналов и типов операций текст лучше хранить в отдельных шаблонах. Код восстановления не стоит отправлять тем же шаблоном, который используется для входа или регистрации. Такая раздельная настройка облегчает аудит и помогает быстрее найти ошибку в интеграции.
Что делать, если SMS не пришло или код не подходит?
На странице восстановления должна быть видна возможность повторной отправки, но сразу после первого запроса кнопку лучше временно отключить. Рядом покажите статус: «Повторная отправка будет доступна через некоторое время». Пользователь понимает, что система приняла запрос, и не нажимает кнопку много раз.
Если код не подошёл, не сообщайте, какая именно часть проверки не прошла. Ответ «Код неверный или срок его действия истёк» не раскрывает лишние детали. После нескольких ошибок временно остановите новые попытки для этой операции и предложите начать восстановление заново.
При сбое доставки проверьте четыре участка цепочки: запрос на сайте, постановку сообщения в очередь, ответ SMS-шлюза и отображение результата в интерфейсе. В журнале должны различаться «запрос создан», «сообщение принято шлюзом», «сообщение доставлено» и «код введён неверно». Иначе поддержка увидит только жалобу клиента и не поймёт, где возник сбой.
Для технической интеграции небольшой компании обычно достаточно API или готового модуля, если он умеет создавать транзакционные сообщения, принимать статусы и передавать результат проверки обратно в сайт. Если восстановление связано с VPS, полезно отдельно проверить настройки OTP для малого бизнеса в материале как настроить OTP на VPS.
Какие ошибки чаще всего ломают восстановление доступа?
- Сервис сообщает, существует ли аккаунт с указанным номером. Это позволяет перебирать номера и собирать сведения о пользователях.
- Старый код остаётся действительным после отправки нового. Клиент путается, а система принимает больше вариантов, чем нужно.
- Код можно вводить без ограничения попыток. Такая настройка превращает короткий код в слабую проверку.
- Кнопка повторной отправки создаёт несколько SMS за один клик из-за повторного запроса браузера.
- После смены пароля старые сессии продолжают работать, хотя владелец аккаунта мог восстанавливать доступ после потери устройства.
- В SMS нет названия операции, поэтому клиент не понимает, к какому действию относится сообщение.
Перед запуском пройдите сценарий на тестовом аккаунте с правильным кодом, неверным кодом, просроченным кодом, повторным запросом и недоступным номером. Отдельно проверьте мобильную страницу: поле должно принимать код без лишних пробелов, а ошибка не должна стирать уже введённые цифры без причины.
3 шага, которые можно сделать на этой неделе:
- Нарисуйте путь пользователя от кнопки «Забыли пароль?» до входа с новым паролем и отметьте все сообщения.
- Зафиксируйте правила для кода: срок действия, повторную отправку, число попыток и отмену старого кода.
- Проведите проверку на тестовом аккаунте и сопоставьте журнал сайта со статусами SMS-платформы.



