Операции самообслуживания
Администратор приложения может предоставить авторизованному пользователю возможность самостоятельно менять настройки учетной записи. Поддерживаются такие операции самообслуживания, как:
- изменение пароля,
- подтверждение измененного контакта,
- добавление нового контакта,
- добавление и удаление учетной записи.
Чтобы повысить уровень безопасности, дополнительно подтверждаются отправкой кода все операции, кроме:
- добавления учетной записи,
- изменения пароля в случае, если у пользователя нет контакта и нет способа его задать (т. е. не настроены шлюзы).
Пользователь может одновременно выполнять до пяти однотипных операций самообслуживания, требующих аутентификации (например, добавление нового контакта). Каждая операция завершается собственным кодом подтверждения. При завершении одной из операций все остальные операции того же типа будет невозможно завершить.
Все необходимые изменения пользователь может выполнять на странице самообслуживания, доступной по адресу путь-к-приложению/self-service:

Алгоритм выполнения операций самообслуживания
Вы также можете реализовать свой сценарий использования этих операций. Выполнение операций происходит по следующему алгоритму:
- Пользователь инициирует процесс выполнения операции (например, нажатием на кнопку в форме).
- Приложение проверяет данные и в случае успеха отправляет код подтверждения через сервис отправки кодов.
- Пользователь получает код и каким-либо образом передает его приложению (например, вводит в поле ввода).
- Приложение проверяет код и в зависимости от результата предлагает отправить код повторно через определенный временной интервал или подтверждает выполняемую операцию.
Самостоятельное изменение пароля доступно только авторизованному пользователю. Если пользователь забыл пароль, он воспользуется функцией восстановления пароля.
Объектная модель для реализации самообслуживания пользователей
Для реализации операций самообслуживания пользователей используются типы пространства имен Стд::Пользователи::Самообслуживание.
ОперацииСамообслуживания
Тип ОперацииСамообслуживания доступен через одноименное свойство глобального контекста. С помощью его методов ДобавлениеУчетнойЗаписи() и УдалениеУчетнойЗаписи() вы можете добавить и удалить способы аутентификации:
ОперацииСамообслуживания.ДобавлениеУчетнойЗаписи(): ОперацияДобавленияУчетнойЗаписи
ОперацииСамообслуживания.УдалениеУчетнойЗаписи(): ОперацияУдаленияУчетнойЗаписи
С помощью методов ДобавлениеКонтакта() и ПодтверждениеКонтакта() можно добавить и подтвердить контакт текущего пользователя:
ОперацииСамообслуживания.ДобавлениеКонтакта(): ОперацияДобавленияКонтакта
ОперацииСамообслуживания.ПодтверждениеКонтакта(): ОперацияПодтвержденияКонтакта
Метод ИзменениеПароля() позволяет изменить пароль:
ОперацииСамообслуживания.ИзменениеПароля(): ОперацияИзмененияПароля
ОперацияДобавленияУчетнойЗаписи
Ч тобы добавить учетную запись пользователя, для объекта типа ОперацияДобавленияУчетнойЗаписи вызывается метод Выполнить() с поставщиком аутентификации, указанном в параметре.
ОперацияУдаленияУчетнойЗаписи, ОперацияДобавленияКонтакта, ОперацияПодтвержденияКонтакта, ОперацияИзмененияПароля
Для объектов типов ОперацияУдаленияУчетнойЗаписи, ОперацияДобавленияКонтакта, ОперацияПодтвержденияКонтакта, ОперацияИзмененияПароля доступны следующие методы:
-
Начать()— создает операцию. Принимает параметры, соответствующие операции. Например,ОперацияИзмененияПароля.Начать()принимает два параметра типаСтрока:СтарыйПарольиНовыйПароль.пер СтатусОперации = ОперацииСамообслуживания.ИзменениеПароля()
.Начать("СтарыйПароль", "НовыйПароль")А метод
ОперацияПодтвержденияКонтакта.Начать()принимает параметрыВидКонтакта, который задает вид подтверждаемого контакта, иСпособПодтверждения, который задает способ подтверждения операции самообслуживания. Эти параметры должны соответствовать друг другу, иначе выбрасывается исключение:-
ВидКонтактаПользователя.Телефон—СпособПодтвержденияОперации.СМС, -
ВидКонтактаПользователя.Почта—СпособПодтвержденияОперации.Почта.пер ОперацияПодтвержденияКонтакта = ОперацииСамообслуживания.ПодтверждениеКонтакта()
пер СтатусОперации = ОперацияПодтвержденияКонтакта.Начать(ВидКонтактаПользователя.Почта,
СпособПодтвержденияОперации.Почта)
примечаниеРекомендуется создавать операцию изменения пароля только тогда, когда вы уверены, что пользователь готов начать процесс изменения пароля (когда пользователь сам инициирует процесс), потому что при успешном вызове метода
Начать()пользователю сразу же отправляется код подтверждения. -
-
ПовторитьОтправкуКодаПодтверждения()— повторяет отправку кода подтверждения, если не превышено количество попыток отправки.пер СтатусОперации = ОперацииСамообслуживания.ИзменениеПароля()
.ПовторитьОтправкуКодаПодтверждения()примечаниеМожно затребовать отправку кода не более 5 раз. После пятой попытки отправка кодов блокируется на 24 часа. Зарегистрировать пользователя с заблокированным контактом нельзя.
Если в момент вызова метода операция уже завершена, выбрасывается исключение
ИсключениеНедопустимоеСостояние. -
Подтвердить()— подтверждает операцию кодом из СМС или электронного письма. В качестве параметра принимает код подтверждения типаСтрока.метод ПодтверждениеОперации(ОперацияПодтвержденияКонтакта: ОперацияПодтвержденияКонтакта, Код: Строка)
ОперацияПодтвержденияКонтакта.Подтвердить(Код)
;Если операция завершена, выбрасывается исключение
ИсключениеНедопустимоеСостояние.