Когда письмо для сброса пароля не приходит, пользователь не может восстановить доступ, а поддержка получает ручные обращения.
Восстановление пароля - критичный сценарий личного кабинета. Он должен быть надежным, но не раскрывать, существует ли email в базе.
Коротко: нужно проверить создание токена, отправку письма, SMTP, доставляемость и безопасность формы.Почему это ломается
Письмо не приходит из-за неправильного SMTP, проблем SPF/DKIM/DMARC, попадания в спам, неработающей очереди, ошибки шаблона, неверного домена в ссылке, просроченного токена или отсутствия пользователя.
Что проверяю первым
- создается ли токен восстановления
- отправляет ли сайт письмо через SMTP
- что пишут логи почты
- проходят ли SPF/DKIM/DMARC
- правильный ли домен в ссылке восстановления
Как проходит исправление
Я проверяю восстановление пароля как безопасный процесс: запрос, токен, письмо, ссылка, новая форма пароля и инвалидирование старых токенов.
- исправляю SMTP и доменные записи
- чиню генерацию и срок жизни токена
- исправляю шаблон письма и ссылку
- проверяю очередь отправки
- добавляю безопасные сообщения формы
Что подготовить
- страницу восстановления
- пример email для теста
- логи отправки
- почтовый сервис домена
- доступ к коду или админке
Какой результат нужен
Письмо должно приходить, ссылка должна работать один раз в ограниченное время, а старые токены должны становиться недействительными.
Чего лучше не делать
Не сообщайте в форме напрямую, есть ли такой email в базе. Это может раскрывать список пользователей.
Вопросы и ответы
Почему письмо в спаме?
Нужно проверить SPF, DKIM, DMARC, From-адрес и содержание письма.
Почему ссылка сразу просрочена?
Может быть ошибка времени сервера, срока токена или повторной генерации.
Можно ли отправлять через сторонний SMTP?
Да, часто это надежнее, если правильно настроить домен и подписи.
Нужно ли завершать активные сессии после сброса?
Для безопасности обычно стоит инвалидировать старые сессии или хотя бы дать такую возможность.
Нужна похожая задача?
Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Коротко опишите проблему, приложите ссылку, скриншот или лог ошибки, и я подскажу, с чего безопасно начать исправление.
Итог
Восстановление пароля должно быть одновременно удобным и безопасным: почта, токен, ссылка и сообщения формы должны работать согласованно.