Атрибуты#
Получение атрибутов#
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"
}