Все модули

Portal Self-Registration

Самостоятельная регистрация на портале с email-верификацией, CAPTCHA, rate limit и реферальной ссылкой.

Возможности

Что умеет модуль

Самостоятельная регистрация

Форма создаёт PortalRegistrationRequest со статусами pending/verified/expired/blocked; после verify — Contact+User+Portal автоматически.

Standalone HTML-форма

public/self-registration/index.html на vanilla JS: 4 шага, маска +7 XXX XXX-XX-XX, resend-таймер, передача urlParams.

Шесть слоёв защиты

honeypot, CAPTCHA, rate limit 3/5 мин, code expiry 10 мин, attempt limit 3, duplicate email check.

CAPTCHA-абстракция

CaptchaVerifier: none/recaptcha/hcaptcha; Integration PortalCaptcha; фронт динамически грузит нужный скрипт.

Email-шаблоны

Отдельные шаблоны verification и welcome с плейсхолдерами {verificationCode}, {temporaryPassword}, {portalUrl}; есть встроенные дефолты.

ParamsHandlerRegistry

DefaultParamsHandler привязывает Contact к рефереру; другие модули добавляют handler через __APPEND__.

Модуль BPM2B Portal Self-Registration добавляет в платформу BPM2B механизм самостоятельной регистрации пользователей в клиентском портале без участия администратора. Форма регистрации — отдельный HTML-страница, защищённая шестью слоями (honeypot, CAPTCHA, rate limit, expiry, attempt limit, duplicate check). После подтверждения email автоматически создаются Contact, User и привязка к Portal.

Основные функциональные возможности:

  • Сущность PortalRegistrationRequest: firstName, lastName, emailAddress, phoneNumber, verificationCode (6 цифр), verificationToken (UUID, unique, indexed), ipAddress, attempts, статус pending / verified / expired / blocked, expiresAt, refererId, urlParams (jsonObject).
  • Standalone-форма: отдельный HTML в public/self-registration/index.html на vanilla JS — стейт-машина из 4 шагов (registration → verification → success / error), маска телефона +7 XXX XXX-XX-XX, resend-таймер 60 сек, передача всех URL-параметров страницы как urlParams.
  • Два публичных endpoint: POST /PortalRegistration (action initiate / verify / resendCode) и GET /PortalRegistrationConfig (captchaType + siteKey + portalUrl без секретов) — оба noAuth.
  • CAPTCHA-абстракция: CaptchaVerifier поддерживает none / recaptcha / hcaptcha; конфигурация через Integration PortalCaptcha с siteKey и secretKey; фронт динамически грузит нужный скрипт.
  • Шесть слоёв защиты: скрытое поле website (honeypot), CAPTCHA, rate limit 3 запроса с IP за 5 минут, срок действия кода 10 минут, лимит 3 попытки ввода → status=blocked, проверка существующего User по email.
  • Автоматическое создание сущностей: на verify создаётся Contact (firstName/lastName/email/phone), User (type=portal, userName=email, passwordHash), привязка User → Portal, дефолтные portalRole + team; затем welcome-письмо с {temporaryPassword} и {portalUrl}.
  • ParamsHandlerRegistry для URL-параметров: ParamsHandlerInterface с методом process(Contact, User, params); DefaultParamsHandler обрабатывает refererId (привязка Contact к реферу); другие модули добавляют свои handler через __APPEND__ в metadata.
  • Email-шаблоны: отдельные шаблоны для верификационного и приветственного писем; плейсхолдеры {verificationCode}, {expirationMinutes}, {temporaryPassword}, {portalUrl}; entity-плейсхолдеры {{Contact.firstName}}; если шаблоны не указаны — встроенные дефолты на русском.
  • Cleanup: Job удаляет expired pending-запросы и verified/blocked старше 30 дней — БД не разрастается.

Модуль предназначен для проектов с открытыми порталами клиентов: B2C-сервисов, образовательных платформ, ServiceDesk с публичным входом. Никаких внешних зависимостей — работает на чистой инсталляции.

Совместимо с платформой версии 9.1.0+
Связаться

Готовы автоматизировать процессы?

Покажем работу системы на ваших данных за 30 минут. Расскажем, как окупится в вашей отрасли, и подберём конфигурацию под ваши процессы.

Email
info@bpm2b.ru
Москва
+7 (499) 113-22-35
Россия
8 (800) 551-91-16
Компания
ООО «Адм Про»

Мы свяжемся в течение 24 часов. Данные используем только для обработки заявки.