Запросы на восстановление паролей (pwd_reset_requests)
Обзор
Производит управление самостоятельными регистрациями пользователей.
Двухэтапный алгоритм:
-
1. POST-запрос от неавторизованного пользователя на отправку письма со ссылкой подтверждения email-адреса.
-
1.1. Проверка наличия полей 'domain', 'login', 'name', 'email' в JSON-теле запроса. Домен из списка разрешающих самостоятельную регистрацию (defaults.json, Settings поля 'self_register_*').
-
1.2. Проверяет корректность заданных значений, при необходимости проверяет уникальность.
-
1.3. Создание сущности system/SelfRegisterRequests с ограничением времени жизни в 1 день.
-
1.4. Отправка письма на почту пользователя со ссылкой, содержащей UUID запроса на регистрацию. Ссылка ведет на системное веб-приложение /app-root, однако она содержит идентификатор, который может быть применен для непосредственного вызова API запросом PATCH.
-
-
2. PATCH-запрос на подтверждение email и назначение пароля.
-
2.1. Проверка наличия поля 'pwd' в JSON-теле запроса.
-
2.2. Проверка актуальности приглашения на основании идентификатора, переданного в URL.
-
2.3. Отправка запроса на создание учетной записи пользователя в MDC и проверка политики сложности паролей.
-
2.4. В случае успеха удаление сущности system/SelfRegisterRequests.
-
Создаваемая учетная запись пользователя формируется объединением шаблона (настройка домена 'self_register_template') и заданных в ходе самостоятельной регистрации значений: 'name', 'login', 'pwd', 'opts.email'. Идентификатор генерируется случайно. Выставляется в 'true' поле 'opts.self_registered'.
Для успешной отправки писем необходимо настроить профиль почтового сервера, учетную запись почтового сервера и выставить ей флаг 'isSystem'.
Запросы
HTTP verb | Endpoint | Описание |
---|---|---|
|
|
|
|
|
Отправка приглашения
Шаг 1/2 двухэтапного алгоритма самостоятельной регистрации.
Создает заготовку учетной записи пользователя и отправляет email для подтверждения электронного адреса.
Выполняется неавторизованным пользователем.
В качестве домена может быть указан только существующий домен, разрешающий самостоятельную регистрацию (настройка 'self_register_allowed').
Запрос разрешено проводить не чаще чем 1 раз в 2 минуты с одного и того же IP-адреса.
Запрос
POST /rest/v1/iam/self_register_requests HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"domain": "pbx.era-platform.ru",
"login": "my_login",
"name": "My Name",
"email": "my.address@email.com",
}
Ответ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"error_code": 0,
"result": true,
"result_msg": "Check your email box for confirmation URL"
}
HTTP/1.1 412 Precondition failed
Content-Type: application/json; charset=utf-8
{
"error_code": 1501,
"error_message": "login already exists",
"error_details":{
"field": "login"
}
}
Подтверждение почтового ящика и установка пароля
Шаг 2/2 двухэтапного алгоритма самостоятельной регистрации.
Запрос
PATCH /rest/v1/iam/self_register_requests/19738eb3-0183-b148-9420-7cd30a921f58 HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"pwd": "ew!hIb3V"
}
Ответ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"error_code": 0,
"result": true,
"result_msg": "Now login with new password",
"user":{
"domain": "pbx.era-platform.ru",
"login": "mylogin"
}
}
HTTP/1.1 412 Precondition failed
Content-Type: application/json; charset=utf-8
{
"error_code": 1501,
"error_message": "pwd contains invalid symbols. Expected: A-Za-z0-9_-.~!",
"error_details":{
"field": "pwd"
}
}