Атрибуты#

Получение атрибутов#

Метод

GET https://login.company.com/blitz/api/v3/users/{subjectId}

Получение атрибутов любого пользователя по его идентификатору.

Необходимые разрешения: blitz_api_user или blitz_api_sys_users.

Возвращает

JSON, содержащий атрибуты пользователя. В блоке meta передаются метаданные учетной записи.

Важно

Атрибут instanceId метаданных нужен для возможности вызова в последующем сервисов изменения атрибутов учетной записи и изменения пароля.

Пример

GET /blitz/api/v3/users/d2580c98‑e584‑4aad‑a591‑97a8cf45cd2a HTTP/1.1
Authorization: Bearer cNw…Nz
{
    "family_name": "Иванов",
    "sub": "d2580c98 e584 4aad a591 97a8cf45cd2a",
    "given_name": "Иван",
    "locked": false,
    "meta": {
        "instanceId": "Mzg…J1",
        "unmodifiable": [
            "sub"
        ]
    }
}

Изменение атрибута#

Метод

POST https://login.company.com/blitz/api/v3/users/{instanceId}

Изменение атрибутов пользователя по instanceId. Чтобы узнать значение instanceId, необходимо предварительно вызвать методом GET сервис получения атрибутов пользователя.

Необходимые разрешения: blitz_api_user_chg или blitz_api_sys_users_chg.

Тело запроса

Значения изменяемых атрибутов пользователя.

Возвращает

JSON, содержащий атрибуты пользователя.

Если переданные значения атрибутов не прошли проверку, вернется ошибка HTTP 400 Bad Request и вложенный JSON, включающий:

  • тип ошибки (type) – input_error для случаев, когда запрос содержит некорректное или недопустимое значение;

  • код ошибки (error);

  • текстовое описание ошибки.

Примечание

Коды ошибок и тексты ошибок могут быть определены специфично для различных атрибутов и определяться реализованной для атрибутов логикой валидаторов.

Пример

POST /blitz/api/v3/users/Mzg…J1 HTTP/1.1
Authorization: Bearer cNw…Nz
Content-Type: application/json

{
   "family_name":"Петров"
}
{
    "family_name": "Петров",
    "given_name": "Иван",
    "locked": false,
    "sub": "5cffd68f-2cb8-4f7a-b0f3-9fa69a1fbbcd",
    "meta": {
        "instanceId": "Mzg…J1",
        "unmodifiable": [
            "sub"
        ]
    }
}
{
    "type": "input_error",
    "error": "wrong_values",
    "errors": [
        {
            "type": "input_error",
            "error": "contact_use_violation",
            "desc": "Validation mobile:79988887812 is failed.",
            "pos": "mobile"
        }
    ]
}

Изменение номера телефона#

Метод

Частный случай изменения атрибута.

Режимы:

  • изменение телефона сразу на подтвержденный,

  • изменение телефона с прохождением подтверждения.

Тело запроса
  • phone_number – мобильный телефон, в виде составного объекта с атрибутами:

    • value – номер телефона в формате 7XXXXXXXXXX;

    • vrf – признак, что телефон подтвержден – true.

Примеры

Изменение номера на подтвержденный
POST /blitz/api/v3/users/Mzg…J1 HTTP/1.1
Authorization: Bearer wzb…Tw
Content-Type: application/json

{
    "phone_number":
        {
            "value":"79991234567",
            "vrf":true
        }
}
{
    "given_name": "Иван",
    "family_name": "Иванов",
    "meta": {
        "instanceId": "Mzg5L…2M",
        "unmodifiable": [
            "uid"
        ]
    },
    "email": {
        "value": "aivanov+2@gmail.com",
        "vrf": true
    },
    "sub": "BIP-LIR6BO33XBBDHANE6DZPUTYVME",
    "phone_number": {
        "value": "+7(999)1234567",
        "vrf": true
    }
}
Изменение номера с прохождением подтверждения
POST /blitz/api/v3/users/Mzg…J1 HTTP/1.1
Content-Type: application/json
X-Forwarded-For: 200.200.100.100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36
Authorization: Bearer wzb…Tw

{
    "phone_number":{"value":"+79999999998","vrf":false}
}

Промежуточный ответ содержит указание на необходимость подтверждения нового номера телефона. Код подтверждения отправляется пользователю на новый номер.

{
    "given_name": "Иван",
    "family_name": "Иванов",
    "meta": {
        "instanceId": "Mzg5L…2M",
        "unmodifiable": [
            "sub"
        ]
    },
    "email": {
        "value": "aivanov+2@gmail.com",
        "vrf": true
    },
    "sub": "BIP-LIR6BO33XBBDHANE6DZPUTYVME",
    "notes": {
        "actions": {
            "state": "ch_EludIw5fEDouy8wpT_GVOJ7rLxKfZUi-G3blijf34yQ",
            "exp": 300,
            "status": "code_waiting",
            "from": "+7(964)1234567",
            "attr": "mobile",
            "attempts_left": 3,
            "value": "+7(999)9999998",
            "action": "validate_mobile",
            "created": 1598446512
        }
    },
    "phone_number": {
        "value": "+7(964)1234567",
        "vrf": true
    }
}

Нужно получить от пользователя код подтверждения нового номера телефона и отправить его в Blitz Identity Provider в запросе. В URL данного запроса использовать значение параметра actions: state из ответа №1:

POST /blitz/api/v3/users/notes/validate_mobile/ch_El…yQ HTTP/1.1
Content-Type: application/json
X-Forwarded-For: 200.200.100.100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5)…
Authorization: Bearer wzb…Tw

{
    "cmd": "code",
    "value": "123456"
}
Успешное изменение номера телефона#
{
    "given_name": "Иван",
    "family_name": "Иванов",
    "meta": {
        "instanceId": "Mzg5L…2M",
        "unmodifiable": [
            "sub"
        ]
    },
    "email": {
        "value": "aivanov+2@gmail.com",
        "vrf": true
    },
    "sub": "BIP-LIR6BO33XBBDHANE6DZPUTYVME",
    "phone_number": {
        "value": "+7(999)9999998",
        "vrf": true
    }
}
Неверный код#
{
    "state": "ch_EludIw5fEDouy8wpT_GVOJ7rLxKfZUi-G3blijf34yQ",
    "exp": 2592000,
    "from": "+7(964)1234567",
    "attr": "phone_number",
    "msg": "wrong_code",
    "attempts_left": 2,
    "created": 1649695409,
    "value": "+7(999)9999998",
    "action": "validate_mobile"
}
Превышено количество попыток ввести верный код#
{
    "state": "ch_EludIw5fEDouy8wpT_GVOJ7rLxKfZUi-G3blijf34yQ",
    "id": "ch_EludIw5fEDouy8wpT_GVOJ7rLxKfZUi-G3blijf34yQ",
    "attr": "phone_number",
    "cause": "no_attempts_left",
    "from": "+7(964)1234567",
    "value": "+7(999)9999998",
    "action": "validate_mobile"
}
Код просрочен#
{
    "state": "ch_EludIw5fEDouy8wpT_GVOJ7rLxKfZUi-G3blijf34yQ",
    "id": "ch_EludIw5fEDouy8wpT_GVOJ7rLxKfZUi-G3blijf34yQ",
    "attr": "phone_number",
    "cause": "code_expired",
    "from": "+7(964)1234567",
    "value": "+7(999)9999998",
    "action": "validate_mobile"
}

Изменение адреса электронной почты#

Метод

Частный случай изменения атрибута.

Режимы:

  • изменение email сразу на подтвержденный,

  • изменение email с прохождением подтверждения.

Тело запроса
  • email – адрес электронной почты:

    • value – адрес электронной почты;

    • vrf – признак, что адрес подтвержден – true;

Примеры

Изменение адреса на подтвержденный
POST /blitz/api/v3/users/Mzg…J1 HTTP/1.1
Authorization: Bearer wzb…Tw
Content-Type: application/json

{
    "email":
        {
            "value":"mail@example.com",
            "vrf":true
        }
}
{
    "given_name": "Иван",
    "family_name": "Иванов",
    "meta": {
        "instanceId": "Mzg5LW…2M",
        "unmodifiable": [
            "sub"
        ]
    },
    "mail": {
        "value": "mail@example.com",
        "vrf": true
    },
    "sub": "BIP-LIR6BO33XBBDHANE6DZPUTYVME",
    "phone_number": {
        "value": "+7(999)1234567",
        "vrf": true
    }
}
Изменение адреса с прохождением подтверждения
POST /blitz/api/v3/users/Mzg…J1 HTTP/1.1
Content-Type: application/json
X-Forwarded-For: 200.200.100.100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36
Authorization: Bearer wzb…Tw

{
 "email":{"value":"mail@example.com","vrf":false}
}

Промежуточный ответ содержит указание на необходимость подтверждения нового адреса электронной почты. Код подтверждения отправляется пользователю на новый адрес.

{
    "given_name": "Иван",
    "family_name": "Иванов",
    "meta": {
        "instanceId": "Mzg5L…2M",
        "unmodifiable": [
            "sub"
        ]
    },
    "email": {
        "value": "aivanov+2@gmail.com",
        "vrf": true
    },
    "sub": "BIP-LIR6BO33XBBDHANE6DZPUTYVME",
    "notes": {
        "actions": {
            "state": "ch_EludIw5fEDouy8wpT_GVOJ7rLxKfZUi-G3blijf34yQ",
            "exp": 86400,
            "status": "code_waiting",
            "from": "aivanov+2@gmail.com",
            "attr": "mail",
            "attempts_left": 3,
            "value": "mail@example.com",
            "action": "validate_mail",
            "created": 1598446512
        }
    },
    "phone_number": {
        "value": "+7(964)1234567",
        "vrf": true
    }
}

Нужно получить от пользователя код подтверждения нового адреса электронной почты и отправить его в Blitz Identity Provider в запросе. В URL данного запроса использовать значение параметра actions: state из ответа №1:

POST /blitz/api/v3/users/notes/validate_email/ch_El…yQ HTTP/1.1
Content-Type: application/json
X-Forwarded-For: 200.200.100.100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5)…
Authorization: Bearer wzb…Tw

{
    "cmd": "code",
    "value": "123456"
}
Успешное изменение адреса электронной почты#
{
    "given_name": "Иван",
    "family_name": "Иванов",
    "meta": {
        "instanceId": "Mzg5L…2M",
        "unmodifiable": [
            "sub"
        ]
    },
    "email": {
        "value": "mail@example.com",
        "vrf": true
    },
    "sub": "BIP-LIR6BO33XBBDHANE6DZPUTYVME",
    "phone_number": {
        "value": "+7(999)9999998",
        "vrf": true
    }
}
Неверный код#
{
    "state": "ch_EludIw5fEDouy8wpT_GVOJ7rLxKfZUi-G3blijf34yQ",
    "exp": 2592000,
    "from": "aivanov+2@gmail.com",
    "attr": "email",
    "msg": "wrong_code",
    "attempts_left": 2,
    "created": 1649695409,
    "value": "mail@example.com",
    "action": "validate_email"
}
Превышено количество попыток ввести верный код#
{
    "state": "ch_EludIw5fEDouy8wpT_GVOJ7rLxKfZUi-G3blijf34yQ",
    "id": "ch_EludIw5fEDouy8wpT_GVOJ7rLxKfZUi-G3blijf34yQ",
    "attr": "email",
    "cause": "no_attempts_left",
    "from": "aivanov+2@gmail.com",
    "value": "mail@example.com",
    "action": "validate_email"
}
Код просрочен#
{
    "state": "ch_EludIw5fEDouy8wpT_GVOJ7rLxKfZUi-G3blijf34yQ",
    "id": "ch_EludIw5fEDouy8wpT_GVOJ7rLxKfZUi-G3blijf34yQ",
    "attr": "email",
    "cause": "code_expired",
    "from": "aivanov+2@gmail.com",
    "value": "mail@example.com",
    "action": "validate_email"
}