Обзор
Iframe UniLink (без бэкенда)
Самый быстрый способ начать работу: просто скопируйте и вставьте ваш URL UniLink.Что понадобится
- Сценарий Didit (создается в Консоли Didit)
- Ваш URL UniLink (нажмите Copy Link в вашем сценарии)
Реализация
⚠️ Обязательно: атрибут allow обязателен для доступа к камере во время проверки живости.
Ключевые преимущества
- Настройка менее чем за 1 минуту: без бэкенда и без API-ключей
- Нулевая конфигурация: URL обратного вызова задается в настройках сценария
- Идеально для MVP: начните работу немедленно
Iframe API-сессии (с бэкендом)
Для продвинутых интеграций, которым нужна настройка на уровне каждой сессии.Когда использовать
- Передавать пользовательские
vendor_dataилиmetadataдля каждой сессии - Задавать разные URL обратного вызова для каждой сессии
- Отслеживать сессии на стороне сервера до начала верификации
- Связывать сессии с вашими идентификаторами пользователей
Реализация
Шаг 1: создайте сессию (бэкенд) В ответе на создание сессии есть полеurl: используйте его как src для iframe.
Прослушивание событий (postMessage)
Страница верификации отправляет события родительскому окну. Каждое сообщение имеет такую оболочку:event.data.data.sessionId, а не event.data.sessionId:
didit:ready ({ sessionId }), didit:started, didit:step_started / didit:step_completed / didit:step_changed ({ step, ... }), didit:status_updated ({ status }), didit:completed ({ sessionId, status }), didit:cancelled, didit:error ({ error, step? }), didit:close_request и didit:layout ({ contentHeight, colorScheme, dir }, см. ниже). В справочнике событий JavaScript SDK перечислены события верификации, доступные как типизированные callback-функции. Начиная с версии 0.5.0, SDK самостоятельно обрабатывает сообщения о макете и не передает их в onEvent.
Задайте размер iframe по didit:layout
Страница верификации сообщает, сколько места ей нужно, с помощью сообщения didit:layout. Она отправляет его при загрузке и каждый раз, когда меняются высота содержимого, тема или направление текста:
Чтобы получать
didit:layout в вашем iframe, добавьте sdk_presentation=embedded к URL верификации. Начиная с версии 0.5.0, JavaScript SDK устанавливает этот параметр за вас. Без параметра presentation страница использует автономный макет и не отправляет сообщения о макете.colorScheme и dir, чтобы согласовать элементы управления вокруг iframe с темой и направлением текста страницы.
Если соединение пользователя пропадает, страница показывает экран «Нет подключения к интернету», который закрывается сам, как только соединение восстанавливается. Если пользователь выбирает Exit Verification на этом экране, страница отправляет didit:error с error: "network_error", а затем didit:cancelled: закрывайте iframe по событию didit:cancelled.
Реализация модального окна
Для аккуратного модального окна поверх вашей страницы:HTML/CSS/JS
Компонент React
Многоразовый React-компонент для верификации в модальном окне:Использование
Компонент Vue
Настройка
Обязательные разрешения
Используйте полный список разрешений для захвата, геолокации, копирования и совместимости медиа:
Атрибут
allow делегирует разрешения фрейму, но не отменяет выбор пользователя и более строгий заголовок Permissions-Policy на вашей странице.
Размер iframe
Поток верификации сам раскладывает содержимое по размеру своего iframe. Задавайте размер iframe по окну, в котором он отображается:
Для среднего диапазона начинайте с 500px на 700px, пока не придет первое сообщение
didit:layout, с тем же ограничением по высоте. В примере didit:layout применены все три размера, включая размеры для компьютера и телефона до получения каких-либо сообщений.
Политика безопасности контента (CSP)
Если вы используете CSP, добавьте Didit в директивуframe-src:
Верификация на другом устройстве
InContext iframe автоматически поддерживает верификацию на другом устройстве:- Пользователь начинает верификацию на компьютере
- Если камера недоступна, показывается QR-код
- Пользователь сканирует QR-код на телефоне
- Пользователь завершает верификацию на телефоне
- Iframe на компьютере автоматически обновляется и отображает результат
Устранение неполадок
Камера не работает
- Убедитесь, что iframe включает полный список разрешений
- Проверьте, что ваш сайт работает по HTTPS
- Убедитесь, что пользователь предоставил вашему домену доступ к камере
- Попробуйте метод Redirect, если доступ к камере в iframe не работает
Iframe не загружается
- Проверьте наличие проблем с Content Security Policy (CSP)
- Добавьте
https://verify.didit.meв директивуframe-src - Проверьте консоль браузера на наличие ошибок
postMessage не получен
- Убедитесь, что вы слушаете правильный origin (
https://verify.didit.meили ваш домен White label) - Проверьте, что обработчик событий добавлен до открытия iframe
- Проверьте имя и структуру события: типы имеют префикс (
didit:completed, а неverification_complete), а payload вложен вevent.data.data
Пример репозитория
Репозиторий GitHub
Смотрите исходный код и примеры на GitHub