Проверка телефона или email
Данный функционал позволяет отправить проверочный код и сохранять факт проверки телефона и/или эл. почты.
Инициализация проверки
POST api/verification/init
Request:
| Field | Required | Type | Description |
|---|---|---|---|
| type | ✅ | string | Тип проверки: email, phone |
| mobilePhone | Если type = phone | string | Номер телефона |
| Если type = email | string | Эл. Почта | |
| entities | ❌ | array | Массив связанных сущностей. Например: client: 123, lead: 5. Используется для дальнейшего поиска |
| entities.*.type | ✅ | string | Тип сущности: client, lead, loanApp итд |
| entities.*.id | ✅ | string | Идентификатор сущности |
| verificationUrl | ❌ | string | URL для отправки в теле письма. Если не указан, то отправится ссылка на микросервис |
Если необходимо клиенту отправлять ссылку на ваш сайт, то в verificationUrl необходимо прописать поля {uuid} и {hash}. Это поля, при формировании письма, заменятся на актуальные.
Пример: https://google.com/verify/{uuid}?hash={hash}
Response:
{
"status": "ok",
"timestamp": 1679497353000,
"data": {
"uuid": "98bfd84d-c3b3-438b-95f8-3199c2730b97"
// Данный uuid используется для отправки кода на проверку
}
}
Проверка осуществляется на основе модуля OTP.
Для использования данного функционала, необходимо создать challenge с названиями email-verification и phone-verification
Прикрепление к сущности
Иногда есть необходимость проверить email перед созданием клиента. Для таких сценариев, можно сначала проверить контакт, потом, после создания сущности, через uuid прикрепить ее к проверке.
PUT api/verification/{uuid}/attach
Request:
| Field | Required | Type | Description |
|---|---|---|---|
| entities | ✅ | array | Массив связанных сущностей. Например: client: 123, lead: 5. Используется для дальнейшего поиска |
| entities.*.type | ✅ | string | Тип сущности: client, lead, loanApp итд |
| entities.*.id | ✅ | string | Идентификатор сущности |
Response:
{
"status": "ok",
"timestamp": 1679562151000,
"data": {
"uuid": "98bfd84d-c3b3-438b-95f8-3199c2730b97",
"verified": true,
"verified_at": "2023-03-23T09:02:31+00:00"
}
}
Проверка кода
Проверка на стороне микросервиса
Если при инициализации запроса на подтверждения не был отправлен параметр verificationUrl, то система автоматически сформирует временную ссылку для подтверждения email на стороне микросервиса.
Проверка по api запросу
POST /api/verification/{uuid}/verify
Request:
| Field | Required | Type | Description |
|---|---|---|---|
| hash | ✅ | string | Код, отправленный в письме |
Response:
{
"status": "ok",
"timestamp": 1679562151000,
"data": {
"uuid": "98bfd84d-c3b3-438b-95f8-3199c2730b97",
"verified": true,
"verified_at": "2023-03-23T09:02:31+00:00"
}
}
Наличие проверки
GET {type}/{entityType}/{entityId}/exists
где,
- type - email, phone
- entityType - Тип сущности. Пример (client)
- entityId - ID сущности
Параметры:
email- Обязательно, если type = emailphone- Обязательно, если type = phone
Response:
{
"status": "ok",
"timestamp": 1679562151000,
"data": {
"found": true
}
}
Поиск проверок
GET {type}/{entityType}/{entityId}
где,
- type - email, phone
- entityType - Тип сущности. Пример (client)
- entityId - ID сущности
Параметры:
email- Обязательно, если type = emailphone- Обязательно, если type = phone
Response:
{
"status": "ok",
"timestamp": 1679562151000,
"data": {
"uuid": "98bfd84d-c3b3-438b-95f8-3199c2730b97",
"verified": true,
"verified_at": "2023-03-23T09:02:31+00:00"
}
}