Пресет «Забыли пароль»

Пресет «Забыли пароль» собирает самообслуживание пароля: участник вводит почту, получает письмо со подписанной ссылкой на час, а страница сброса проверяет ссылку и открывает ему сессию. Новый пароль ставится следом, пресетом «Смена пароля». Показываем каждый шаг: окно параметров, письмо, страницу сброса и связку двух пресетов.

Сброс пароля — тот случай, где самодельные решения опасны: ссылка должна быть подписанной, сгорать по таймеру и не раскрывать, существует ли адрес в базе. Пресет делает всё это сразу.

Где найти пресет

Админка → «Сайт» → пустой сценарий → тулбар → «Пресеты». Карточка «Забыли пароль» — четвёртая в галерее, рядом с «Регистрацией».

Галерея пресетов: карточка «Забыли пароль»

Что собирает пресет

Основной сценарий:

Узел Роль в сценарии
Начало Форма «забыли пароль» шлёт почту на маршрут сценария
GraphQL Найти участника по введённому адресу
Отправить email Письмо со ссылкой сброса (подписанный токен на час)
Редирект На страницу «письмо отправлено»

И страница-спутник — сценарий сброса на своём маршруте: открывает ссылку из письма, проверяет подпись токена и открывает участнику сессию на сутки.

Шаг за шагом

1. Откройте окно параметров (карточка «Забыли пароль»).

Окно параметров пресета «Забыли пароль»: участники и поля

2. Выберите тип контента участников и свойства — те же, что в пресетах «Вход» и «Регистрация». Кнопка «Создать тип контента участника» создаст тип, если его нет.

3. Согласуйте поле формы — имя поля почты в разметке вашей формы (по умолчанию email).

4. Укажите адрес сайта и путь страницы сброса. По умолчанию спутник живёт на /reset; из адреса сайта строится ссылка в письме.

5. Прочитайте предупреждение про SMTP — оно стоит в самом начале окна — и нажмите «Сгенерировать».

Как и «Регистрация», пресет сам создаёт страницу сброса (сценарий, черновик шаблона, маршрут); основная схема, как у любого пресета, ждёт вашего «Сохранить черновик». После генерации проверьте списки сценариев и маршрутов.

Холст основного сценария сброса пароля

Письмо со ссылкой сброса

Откройте узел «Отправить email»:

Инспектор узла письма со ссылкой сброса

  • SMTP-раздел обязателен: сервер, порт, логин, пароль вашей почты. Пароль почтового ящика — учётные данные: впишите его во вкладку «Секреты» раздела «Сайт» и подставьте в узле по имени.
  • Ссылка в письме несёт подписанный токен и действует один час — после этого участник запрашивает новое письмо.
  • Тема и текст письма редактируются свободно.

Страница сброса

Спутник принимает ссылку, проверяет токен и открывает участнику сессию на сутки — с этой сессией он работает как вошедший.

Холст страницы сброса: проверка токена и сессия на сутки

Новый пароль на этой странице не вводится: его ставит пресет «Смена пароля» — поставьте его сценарий на закрытую страницу, и участник задаст новый пароль сразу после перехода по ссылке. После смены работает обычный вход.

Почему ответ всегда одинаковый

Найдётся участник или нет, сценарий ведёт посетителя на одну и ту же страницу «письмо отправлено» — по ответу формы невозможно понять, есть ли адрес в базе. Так форма не становится инструментом перебора «кто у нас зарегистрирован». Не «чините» это: явное сообщение об отсутствии участника открывает перебор адресов.

Что проверить после генерации

  • SMTP в узле письма основного сценария.
  • Публикация: основной сценарий, сценарий сброса, затем сайт («Черновик, превью и публикация»).
  • Прогон на превью: письмо → ссылка открывает сессию → смена пароля пресетом «Смена пароля» → вход с новым паролем.

Тонкости

  • Час жизни ссылки — настройка в узле письма (вторая цифра в signed_token). Хотите два часа — поменяйте 3600 на 7200.
  • Страница сброса на маршруте /reset — путь можно сменить в окне «Пути», тогда поправьте и ссылку в письме.
  • Час прошли — ссылка ведёт на сообщение об ошибке; участник запрашивает новое письмо.

Частые вопросы

Вопрос Ответ
Письмо не приходит, хотя участник есть Первым делом SMTP-раздел в узле письма, затем папка «Спам».
Ссылка сброса сразу выдаёт ошибку Час прошли или сценарий сброса не опубликован. Запросите письмо заново.
Можно сбрасывать пароль без почты? В этом пресете — нет: почта здесь канал доставки подписанной ссылки.
Чем это отличается от пресета «Смена пароля»? «Смена пароля» — для вошедшего участника, который помнит старый пароль. «Забыли пароль» — для того, кто забыл: подтверждение через почту.

Следующая статья: Пресет «Смена пароля»

См. также: Пресет «Вход» · Пресет «Регистрация»