Регистрация пользователей#
Регистрация пользователей – веб-приложение, позволяющее пользователю самостоятельно создать свою учетную запись. Настройка регистрации включает в себя конфигурирование формы регистрации, изменение параметров сервиса и создание процедуры регистрации (опционально).
Форма регистрации#
Перечень запрашиваемых данных пользователя определяется 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()}")
Результат использования указанного шаблона в интерфейсе веб-приложения Регистрация пользователя представлен на рисунке:
Для добавления на форму регистрации выпадающего списка для выбора значений атрибута из справочника необходимо:
Создать на сервере Blitz Identity Provider директорию
/etc/blitz-config/custom_messages/dics
;Создать файл
/etc/blitz-config/custom_messages/dics/dic_name
с содержимым справочника (вместоdic_name
указать имя справочника, например,company_id
). Пример файлаcompany_id
для выпадающего справочника выбора компании:
001=Тестовая компания 1
002=Тестовая компания 2
003=Тестовая компания 3
Число в справочнике будет записываться в значение атрибута. Строка в справочнике будет показываться пользователю на форме регистрации.
Проверить владельца директории
dics
и файлов справочников в ней. Владелец должен бытьblitz:blitz
.
chown -R blitz:blitz /etc/blitz-config/custom_messages/dics
В конфигурационном файле
blitz.conf
в блокblitz.prod.local.idp.messages
добавить блокdics
. В настройкеnames
перечислить все имена справочников (для каждого справочника должен быть создан свой файл со значениями справочника). Например:
"dics" : {
"dir" : "custom_messages/dics",
"names" : [
"company_id"
]
}
Перезапустить приложение
blitz-registration
.В консоли управления в шаблоне страницы регистрации добавить строку с заполнением атрибута из справочника:
@attrInput("company", msg("Компания"), Map("dic" -> "company_id", "dic-default" -> "0", "sort" -> "key"))
Настройки сервиса регистрации#
В качестве настроек можно задать:
хранилище для учетной записи – нужно выбрать одно из сконфигурированных хранилищ (раздел Источники данных) для сохранения учетной записи;
необходимые для регистрации атрибуты пользователя – атрибуты, наличие которых необходимо для завершения процедуры регистрации. Обязательные атрибуты пользователя не нужно включать в данный список. Возможно добавление нескольких альтернативных правил. Если отмечен чекбокс
Использовать условия из процедуры регистрации
, то настроенные условия игнорируются и применяются условия, определенные функциейisEnough
из процедуры регистрации.URL внешнего сервиса регистрации. Если задать в качестве параметра этот URL, то по этому адресу будет направлен пользователь при переходе к процессу регистрации (вместо приложения регистрации Blitz Identity Provider).
Скриншот фрагмента страницы настроек регистрации представлен на рисунке:
Процедура регистрации#
Процедура регистрации – 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
. Такой способ рекомендуется применять, если правила использования размещены на внешнем ресурсе, например, в виде отдельной веб-страницы.