Пресет «Вход»

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

Вход — базовый сценарий закрытых сайтов: личный кабинет, клуб, база знаний с доступом по подписке. Пресет закрывает его целиком: вам останется выбрать, где хранятся участники, и нарисовать форму входа.

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

Откройте в админке раздел «Сайт» и войдите в любой сценарий (или создайте новый пустой) — в тулбаре над холстом нажмите «Пресеты». В галерее карточка «Вход» стоит второй, сразу после «Страницы».

Галерея пресетов: карточка «Вход»

У карточки в углу есть значок книги — он ведёт на эту статью, если понадобится освежить шаги.

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

После генерации на холсте появляется цепочка из шести узлов:

Узел Роль в сценарии
Начало Точка входа: запросы с формы приходят на маршрут сценария
GraphQL Найти участника по логину из формы
Условие Сверить пароль из формы с паролем участника
Установка cookie При верном пароле — запомнить человека
Редирект При неверном — отправить на страницу с ошибкой

Второй редирект (после cookie) ведёт на страницу успеха — туда попадает вошедший посетитель.

Шаг за шагом

1. Откройте окно параметров. Кликните карточку «Вход» — платформа спросит о участниках, форме и сессии.

Окно параметров пресета «Вход»

2. Выберите тип контента участников. Участник — человек с аккаунтом на вашем сайте, а тип контента — «карточка» с полями, где он хранится. Подходящего типа нет — нажмите «Создать тип контента участника»: платформа сама сделает тип с полями логина и пароля.

3. Укажите свойства логина и пароля. Свойство-идентификатор — поле, по которому участника находят (обычно email); свойство-пароль — где лежит пароль. Пароли хранятся необратимо: вместо пароля — его «отпечаток» (bcrypt, стандарт для паролей), поэтому даже владелец сайта не может его прочитать. Сценарий сверяет введённое с отпечатком.

4. Согласуйте поля формы. Имена email и password должны совпадать с атрибутами name в разметке вашей формы входа — через них сценарий получает введённое.

5. Настройте сессию. Имя cookie (по умолчанию member) и поля, которые кладутся в cookie. Cookie — пометка в браузере, по которой сайт узнаёт вошедшего при следующих заходах. Храните там только стабильные отображаемые поля, например имя. Срок cookie — по умолчанию 30 дней.

Нижняя часть окна: cookie, пути, срок сессии

6. Укажите пути при успехе и при ошибке. Успех — куда вести после входа (по умолчанию /), ошибка — обычно обратно на форму с пометкой (/login?failed=1), чтобы показать сообщение.

7. Нажмите «Сгенерировать». Схема ляжет на холст.

Холст после генерации пресета «Вход»

Если на холсте уже была схема, платформа спросит «Заменить поток?» — до подтверждения ничего не меняется.

Что внутри узлов

Каждый узел остаётся обычным редактируемым узлом — заглянем в три самых важных.

Узел GraphQL ищет участника: запрос берёт логин из формы ({{ form.email }}) и просит CMS найти запись с таким идентификатором.

Инспектор узла GraphQL: поиск участника

Узел Условие сверяет пароль: функция bcrypt-сравнения получает пароль из формы и отпечаток из записи. Совпало — ветка «да», не совпало — «нет».

Инспектор условия: проверка пароля

Узел Установка cookie ставит сессию: имя, содержимое и срок жизни в днях.

Инспектор узла установки cookie

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

  • Форма на сайте отправляет данные POST-запросом на маршрут сценария — привязка создаётся пресетом сама.
  • «Сохранить черновик» → «Опубликовать сценарий» — без этого сайт ничего не заметит (подробнее — «Черновик, превью и публикация»).
  • Закрытые страницы: у их сценариев включите режим «Только для участников» в узле «Начало» — тогда без верной cookie страницы не откроются.
  • Войдите тестовым участником и проверьте оба пути: верный и неверный пароль.

Тонкости

  • Ошибка входа не говорит, что именно не сошлось — логин или пароль. Это намеренно: так не подбирают чужие аккаунты.
  • Срок cookie — баланс: 30 дней удобен людям, для чувствительных сайтов ставьте меньше.
  • Хотите кнопку «Выйти» — примените пресет «Выход»: он стирает ту же cookie.
  • Поле «Ключ результата» (по умолчанию login) — имя, под которым результат поиска виден следующим узлам. Менять нужно только если имя login занято вашим запросом.

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

Вопрос Ответ
Где взять участников до первой регистрации? Создайте записи в типе контента участников вручную или поставьте пресет «Регистрация» — она создаёт участника сама.
Форма входа отправляет данные, но всегда ошибка Проверьте совпадение имён полей формы (шаг 4) и то, что пароль участника был задан через платформу (отпечаток, а не текст).
Можно два типа участников с разным входом? Да: два сценария с этим пресетом, у каждого свой тип контента и своё имя cookie.
Как ограничить срок сессии неделей? В окне параметров поле «Срок cookie (дней)» — поставьте 7 и перегенерируйте, либо поправьте узел cookie на холсте.

Следующая статья: Пресет «Регистрация»

См. также: Первый сценарий за 10 минут · Узлы-действия: что умеет каждый