Перейти к основному содержанию
JavaScript SDK от Didit предоставляет программный способ интеграции верификации в ваше веб-приложение с полным контролем над взаимодействием с пользователем.

Возможности

  • Простой API - паттерн Singleton с удобными методами
  • Гибкая интеграция - используйте URL UniLink напрямую или создавайте сессии через бэкенд
  • Адаптивность - работает в десктопных и мобильных браузерах
  • Кастомизация - параметры конфигурации для стилизации и поведения
  • Несколько форматов - сборки ESM, CommonJS и UMD
  • Поддержка TypeScript - полные определения типов в комплекте
  • Модальный и встроенный режимы - выбор между модальным оверлеем и встроенным отображением
  • Обратные вызовы событий — события прогресса верификации в реальном времени (начата, шаг завершён, завершена)
  • Управление состоянием - отслеживайте состояние SDK для создания собственного интерфейса

Установка

NPM/Yarn

CDN (UMD)

Последний опубликованный npm-релиз: 0.5.1. В версии 0.5.0 был добавлен метод DiditSdk.shared.submitEvent() (см. раздел События отправки), а версия 0.5.1 позволяет размещённому сценарию запрашивать удостоверение пользователя у кошелька цифровых удостоверений внутри SDK и сохраняет неудачный запуск в состоянии error с соответствующим errorMessage. В версии 0.4.0 добавлены параметры камеры, которые уже поддерживаются нативными SDK, включая defaultLivenessCamera, который открывает захват лица на задней камере (см. раздел Параметры камеры).

Проверка установленной версии

Ваш пакетный менеджер остаётся основным источником информации об установленном релизе:
Вы также можете проверить экспорт во время выполнения:
Начиная с версии 0.3.1, этот экспорт генерируется на основе версии пакета во всех форматах JavaScript (ESM, CommonJS, UMD, минифицированный UMD) и в объявлениях TypeScript, поэтому он всегда соответствует установленному релизу. Версии 0.3.0 и более ранние возвращают 0.2.1 из этого экспорта независимо от установленной версии. В этих релизах используйте npm list или файл блокировки.

Чистый JavaScript

ES-модули / TypeScript

Тег скрипта (UMD)


Примеры для фреймворков

Примеры веб-интеграции SDK

React, Angular, Svelte, Next.js, Nuxt, Vue и другие: с примерами и документацией для каждого фреймворка.

Способы интеграции

Существует два способа интеграции SDK: Используйте URL UniLink вашего сценария прямо из Didit Console. Бэкенд не требуется.
Получите ваш URL UniLink в Didit Console → Ваш сценарий → Копировать ссылку. Сгенерированный session_id будет отправлен вам через событие. Справочник по событиям доступен здесь

Способ 2: Сессия на бэкенде (рекомендуется для продакшна)

Ваш бэкенд создаёт сессию через Didit API и возвращает URL размещённой страницы верификации. Это даёт контроль над параметрами vendor_data, callback для конкретной сессии, metadata и позволяет создавать сессии до того, как пользователь перейдёт на фронтенд. Подробнее см. в справочнике по API создания сессии. Бэкенд (Node.js / Express)
Фронтенд
Поле в ответе при создании сессии называется url (см. схему OpenAPI для Create Session). Передайте его напрямую в startVerification({ url }).

Конфигурация

Ознакомьтесь с полными определениями типов TypeScript ниже, чтобы изучить интерфейс DiditSdkConfiguration целиком.

Параметры камеры

Для параметров камеры требуется @didit-protocol/sdk-web версии 0.4.0 или новее.
Веб-SDK предоставляет те же четыре параметра камеры, что и нативные SDK. По умолчанию при захвате документа открывается задняя камера, а при захвате лица (проверка живости) открывается фронтальная (селфи) камера; при этом на обоих шагах доступен переключатель камер непосредственно во время съемки на устройствах с несколькими камерами. Установите defaultLivenessCamera: 'back', чтобы открывать захват лица на задней камере, например в киоске или когда оператор держит устройство и направляет его на верифицируемого пользователя.
  • Допустимые значения камеры: 'front' и 'back'. Любое другое значение игнорируется, как и флаг переключателя, если он не является логическим значением.
  • Устройство без запрошенной камеры продолжает использовать доступную: если для ноутбука запросить 'back', он все равно будет использовать веб-камеру. На устройствах с одной камерой переключатель скрывается независимо от установленных флагов.
  • Параметры проверки живости применяются к пассивной проверке живости. На активную проверку живости они не влияют.
  • SDK передает параметры на страницу верификации в качестве параметров запроса URL верификации: document_camera, liveness_camera, document_camera_switch и liveness_camera_switch. Если вы открываете URL верификации напрямую, а не через SDK, укажите их самостоятельно: добавьте ?liveness_camera=back к URL без параметров запроса, &liveness_camera=back к URL, в котором уже есть параметры, или задайте их с помощью API URL, чтобы корректно обработать оба случая:

Отправка событий

Метод DiditSdk.shared.submitEvent() ставит в очередь события конечных пользователей (регистрация, вход, неудачный вход, выход, сброс пароля, MFA, смена устройства) для мониторинга событий Didit. Ваш бэкенд создает token для мониторинга пользователя, а SDK отправляет события пакетами вместе с цифровым отпечатком устройства. Никогда не передавайте API-ключ в браузер.
Сведения о token, полях событий и поведении при доставке см. в разделе Отправка событий через SDK.

Размеры и прокрутка модального окна

Описанное ниже поведение размеров требует версии 0.3.1 или новее. В версиях 0.3.0 и более ранних сценарий верификации может обрезаться на невысоких экранах десктопов и в альбомной ориентации.
В модальном режиме максимальная ширина составляет 500px, а максимальная высота составляет 700px. На невысоких экранах компьютеров и в окне просмотра в альбомной ориентации iframe занимает 90% видимой области экрана. Сценарий верификации прокручивается внутри iframe, поэтому каждый шаг остается доступным, пока страница под модальным окном остается заблокированной. SDK использует единицы dvh в браузерах с поддержкой динамических единиц viewport и переключается на vh в более старых поддерживаемых браузерах. При ширине 540px и менее модальное окно заполняет всю видимую область экрана. Кнопка закрытия и подтверждение выхода остаются внутри модального окна.

Обновленный сценарий верификации

Все сказанное в этом разделе относится к версии 0.5.0, которая пока не опубликована. До обновления модальное окно сохраняет размеры, описанные выше.
Начиная с версии 0.5.0, модальное окно автоматически адаптирует свой размер под обновленный сценарий верификации, как только страница передает данные о своем макете с помощью сообщения didit:layout:
  • Начальный размер, начиная с версии 0.5.0: пока страница не передаст параметры своего макета (а также для страниц, которые их не передают), модальное окно сохраняет прежний максимальный размер 500px на 700px. Оно по-прежнему подстраивается под невысокие окна и разворачивается во весь экран при ширине 540px и менее.
  • Кнопка закрытия, начиная с версии 0.5.0: круглая кнопка диаметром 44px поверх верхней панели страницы. Она адаптируется к светлой или темной теме страницы и перемещается влево для языков с письмом справа налево.
  • Встроенный режим, начиная с версии 0.5.0: компонент по-прежнему заполняет родительский элемент, как и раньше (см. Встроенный режим).
  • URL верификации, начиная с версии 0.5.0: SDK добавляет параметры sdk_presentation (modal или embedded) и, в случае модального окна, sdk_close_button (true или false в соответствии с showCloseButton), чтобы страница знала, как именно она отображается.
  • События, начиная с версии 0.5.0: SDK обрабатывает событие didit:layout самостоятельно и не передает его в onEvent.
Дополнительная настройка не требуется, и все существующие параметры продолжают работать.

Встроенный режим

Во встроенном режиме ограничение 500px на 700px, характерное для модального окна, не применяется. SDK заполняет область содержимого родительского элемента, поэтому задайте этому элементу явную или вычисляемую высоту:
Если у родительского элемента нет вычисленной высоты, встроенный iframe также не получит пригодной для использования высоты. Изменяйте размер родительского элемента при изменении разметки; SDK продолжит автоматически заполнять его.

Результаты верификации

SDK возвращает три типа результатов:

Завершено

Верификация завершена (одобрена, ожидает решения или отклонена).
Тип TypeScript декларирует 'Approved' | 'Pending' | 'Declined', однако значение передаётся напрямую из статуса сессии размещённого сценария — вы также можете получать и другие статусы, например In Review. Pending является резервным значением SDK, когда сценарий не вернул никакого статуса. Рассматривайте status как подсказку и опирайтесь на webhook для получения канонического решения.

Отменено

Пользователь закрыл модальное окно верификации. session передаётся, если sessionId уже известен (может быть undefined, если пользователь отменил процесс до того, как iframe успел передать его).

Ошибка

Во время верификации произошла ошибка.

Управление состоянием

Вы можете отслеживать состояние SDK для создания собственного пользовательского интерфейса:

Справочник API

DiditSdk.shared

Синглтон-экземпляр SDK.

Методы

Свойства

Колбэки


Детализированные события

Отслеживайте прогресс верификации с помощью callback-функции onEvent:

Справочник событий

Потеря соединения

Если у пользователя пропадает соединение, страница верификации отображает экран «Нет подключения к интернету» поверх сценария вместо того, чтобы оставлять шаг в состоянии загрузки. Она продолжает проверку в фоновом режиме и автоматически закрывает этот экран, как только связь с Didit восстанавливается, после чего пользователь продолжает работу с того шага, на котором находился. Внутри модального окна SDK или iframe экран также предлагает кнопку Выйти из верификации: в этом случае страница отправляет событие didit:error с error: "network_error", за которым следует didit:cancelled, а SDK закрывает модальное окно и вызывает onComplete с type: "cancelled". Начиная с версии 0.5.0, сообщение страницы didit:layout задаёт размер модального окна и не передаётся в onEvent. Если вы встраиваете страницу с помощью собственного iframe, см. раздел Подгонка размера iframe с помощью didit:layout.

Значения шагов

Поле step может принимать одно из следующих значений:
  • document_selection - выбор типа документа
  • document_front - лицевая сторона документа
  • document_back - обратная сторона документа
  • face - проверка лица/проверка живости
  • email - проверка электронной почты
  • phone - проверка телефона
  • poa - подтверждение адреса
  • questionnaire - шаг анкеты

Значения каналов

Поле channel в code_sent может принимать значения:
  • email - код отправлен по электронной почте
  • sms - код отправлен по SMS
  • whatsapp - код отправлен через WhatsApp

Длина кода

Поле codeSize в code_sent указывает длину одноразового кода (например, 4 или 6 цифр).

Типы TypeScript

Последнее изменение 7 ноября 2026 г.