Регистрация пользователей#

Регистрация пользователей – веб-приложение, позволяющее пользователю самостоятельно создать свою учетную запись. Настройка регистрации включает в себя конфигурирование формы регистрации, изменение параметров сервиса и создание процедуры регистрации (опционально).

Форма регистрации#

Перечень запрашиваемых данных пользователя определяется HTML-шаблоном. Шаблон представляет собой текстовый файл, который компилируется с помощью шаблонизатора Twirl. В шаблоне необходимо разместить функции, позволяющие пользователю при регистрации вводить данные о себе.

Примеры функций, доступных в шаблоне:

  • @attrInput("email", msg("reg.email"), Map("placeholder" -> "mail@example.com", "error-messages" -> msg("reg.email.wrong"), "input-type" -> "mail")) – отображает на странице поле для ввода атрибута email, описанного в системе. msg("reg.email") - это название атрибута, которое берется из файла сообщений в соответствии с текущей локалью. При пустом поле ввода в нем отображается "mail@example.com" в качестве подсказки, а при некорректном вводе – сообщение msg("reg.email.wrong") из файла сообщений. Для элемента задается input-type равный mail;

  • @attrInput("family_name", "Фамилия", Map("placeholder" -> "Фамилия", "error-messages" -> "Ошибка")) – отображает на странице поле для ввода фамилии пользователя в переменную family_name. Эту переменную далее можно использовать при исполнении процедуры регистрации.

  • @securityQuestionInput – отображает на странице поля ввода контрольного вопроса и ответа на контрольный вопрос;

  • @passwordsInput - отображает на странице поля ввода пароля и его подтверждение;

  • @agreement - отображает ссылку на условия использования;

  • @attrExpr – функция, позволяющая создать вычисляемый атрибут (или присвоить атрибуту константное значение);

  • @submitButton - отображает кнопку Зарегистрироваться.

Пример шаблона для регистрации:

@attrInput("family_name", "Фамилия", Map("placeholder" -> "Фамилия", "error-messages" -> "Ошибка"))
@attrInput("given_name", "Имя", Map("placeholder" -> "Имя", "error-messages" -> "Ошибка"))
@attrInput("phone_number", "Номер мобильного телефона", Map("placeholder" -> "+7(999)9999999", "error-messages" -> "reg.page.mobile.req.err.msg"))
@attrInput("email", "Адрес электронной почты", Map("placeholder" -> "name@example.com", "error-messages" -> "reg.page.email.req.err.msg", "input-type" -> "mail"))
@passwordsInput
@agreement
@attrExpr("sub","BIP-${&random(4)}")
@submitButton

Совет

Для автогенерации GUID создаваемых учетных записей используйте следующую формулу @attrExpr:

@attrExpr("sub","${&rUUID()}")

Результат использования указанного шаблона в интерфейсе веб-приложения Регистрация пользователя представлен на рисунке:

../_images/reg_new.png

Для добавления на форму регистрации выпадающего списка для выбора значений атрибута из справочника необходимо:

  1. Создать на сервере Blitz Identity Provider директорию /etc/blitz-config/custom_messages/dics;

  2. Создать файл /etc/blitz-config/custom_messages/dics/dic_name с содержимым справочника (вместо dic_name указать имя справочника, например, company_id). Пример файла company_id для выпадающего справочника выбора компании:

001=Тестовая компания 1
002=Тестовая компания 2
003=Тестовая компания 3

Число в справочнике будет записываться в значение атрибута. Строка в справочнике будет показываться пользователю на форме регистрации.

  1. Проверить владельца директории dics и файлов справочников в ней. Владелец должен быть blitz:blitz.

chown -R blitz:blitz /etc/blitz-config/custom_messages/dics
  1. В конфигурационном файле blitz.conf в блок blitz.prod.local.idp.messages добавить блок dics. В настройке names перечислить все имена справочников (для каждого справочника должен быть создан свой файл со значениями справочника). Например:

"dics" : {
    "dir" : "custom_messages/dics",
    "names" : [
        "company_id"
    ]
}
  1. Перезапустить приложение blitz-registration.

  2. В консоли управления в шаблоне страницы регистрации добавить строку с заполнением атрибута из справочника:

@attrInput("company", msg("Компания"), Map("dic" -> "company_id", "dic-default" -> "0", "sort" -> "key"))

Настройки сервиса регистрации#

В качестве настроек можно задать:

  • хранилище для учетной записи – нужно выбрать одно из сконфигурированных хранилищ (раздел Источники данных) для сохранения учетной записи;

  • необходимые для регистрации атрибуты пользователя – атрибуты, наличие которых необходимо для завершения процедуры регистрации. Обязательные атрибуты пользователя не нужно включать в данный список. Возможно добавление нескольких альтернативных правил. Если отмечен чекбокс Использовать условия из процедуры регистрации, то настроенные условия игнорируются и применяются условия, определенные функцией isEnough из процедуры регистрации.

  • URL внешнего сервиса регистрации. Если задать в качестве параметра этот URL, то по этому адресу будет направлен пользователь при переходе к процессу регистрации (вместо приложения регистрации Blitz Identity Provider).

Скриншот фрагмента страницы настроек регистрации представлен на рисунке:

../_images/reg_props.png

Процедура регистрации#

Процедура регистрации – Java-код, реализующий необходимые проверки после того, как пользователь заполнит форму регистрации. В ходе исполнения процедуры возможно выполнение следующих действий:

  • выполнение дополнительных проверок введенных данных;

  • выполнение преобразования введенных данных;

  • сохранение значений атрибутов в хранилище;

  • вызов внешних REST-сервисов.

При необходимости преобразовать данные, введенные пользователем, и далее сохранить их в виде атрибутов, в шаблоне страницы регистрации следует использовать функцию @attrInput вместо @textInput.

Изменение текста условий использования#

На странице регистрации пользователя размещена ссылка на условия использования. Условия использования размещены в архиве assets.zip, расположенном в директории assets установки Blitz Identity Provider в заархивированном каталоге documents\user_agreement.

Для изменения правил использования следует распаковать архив assets.zip, заменить файлы user_agreement_ru.pdf (русская версия) и user_agreement_en.pdf (английская версия) на требуемые и заархивировать архив с сохранением исходной структуры.

Также возможно изменить ссылку на правила использования. Для этого следует отредактировать строку reg.page.reg.action.agreement и setPswd.page.agreement. Такой способ рекомендуется применять, если правила использования размещены на внешнем ресурсе, например, в виде отдельной веб-страницы.