Skip to main content
Тот же каталог — на veriqa.app/channels. Они ведутся синхронно, и расхождение между ними — дефект, а не две точки зрения.
Пользователь подтверждает вход в мессенджере или почте, которыми и так пользуется, — ничего нашего устанавливать не нужно. Ваше приложение получает обычные токены OpenID Connect, через какой бы канал ни прошёл вход. Любой канал выдаёт базовые claims channel_type, channel_user_id и name — в карточке указано, что канал добавляет к ним. Для каналов, которых ещё нет в поставке, — что позволяет API платформы. Помимо claims, в описании канала используются ещё два термина: секретное сообщение и подтверждение в канале.

Секретное сообщение

Секретное сообщение — это сообщение с кодом входа, которое пользователь сам отправляет в канал, когда перешёл по ссылке или отсканировал QR-код. Veriqa заполняет его заранее, мессенджер показывает готовым — остаётся нажать «Отправить». Нужно оно не во всех каналах. Примеры:
  • Telegram и MAX: не нужно — мессенджер сам открывает бота и передаёт ему код.
  • WhatsApp: нужно ради повышенной безопасности — готовое сообщение уходит в один тап.
  • Email: так же, готовым письмом — письмо в один тап (режим Push), — или, опционально, классический magic link.

Подтверждение в канале

Подтверждение в канале — это функция, при которой бот прямо в чате спрашивает, пропустить ли вход: в какое приложение и с какого устройства, — с кнопками «Подтвердить» и «Отклонить». Её можно переключить в автоматический режим — тогда вход происходит без дополнительного запроса: ключ LoginConfirmation.Mode в справочнике конфигурации. Примеры:
  • Telegram: вопрос приходит сразу после перехода по ссылке.
  • WhatsApp: вопрос приходит в ответ на секретное сообщение.
  • Email: в канале вопроса нет — по желанию он задаётся на странице в браузере.

Встроенные

Входят в поставку Veriqa — нужные включаются в конфигурации.

Telegram

Claims сверх базовых: given_name, family_name, preferred_username, locale, pictureНомер телефона: phone_number и phone_number_verified по запросу — пользователь делится номером кнопкой в чате (номер телефона)Подтверждение в канале: даСекретное сообщение: не нужно

WhatsApp

Claims сверх базовых: phone_number, phone_number_verified, given_nameПодтверждение в канале: даСекретное сообщение: нужно — в один тап

WhatsApp через Twilio

Тот же канал WhatsApp, но доставка идёт через аккаунт Twilio, а не через Meta WhatsApp Business Platform — провайдер выбирается одним ключом конфигурации (доставка через Twilio).Claims сверх базовых: phone_number, phone_number_verified, given_nameПодтверждение в канале: да — две кнопки быстрого ответаСекретное сообщение: нужно — в один тап

MAX

Claims сверх базовых: given_name, family_name, preferred_username, locale, pictureНомер телефона: phone_number и phone_number_verified по запросу — пользователь делится номером кнопкой в чате; только в режиме вебхука (номер телефона)Подтверждение в канале: даСекретное сообщение: не нужно

Email

Claims сверх базовых: email, email_verified, preferred_username, veriqa_channel, veriqa_email_modeПодтверждение в канале: нет — опционально через браузерСекретное сообщение: нужно — в один тап, или классический magic linkДва режима: письмо в один тап (пользователь отправляет готовое письмо — значит, доставлять ему ничего не нужно, и почтовому шлюзу нечего сжигать) и классический magic link, включённый по умолчанию. Что даёт каждый — какой режим выбрать.

Любой канал через HTTP

Подключите канал, которого нет в поставке, — свой бот, корпоративный мессенджер, региональную платформу — как внешний сервис на любом языке. Veriqa общается с ним по HTTP, а ключи платформы остаются у вашего сервиса. Это же способ встроить в процесс Veriqa уже написанного бота — без публикации нового.
  • Claims сверх базовых: те, что вернёт ваш адаптер
  • Подтверждение в канале: задаёт адаптер
  • Секретное сообщение: задаёт адаптер

WhatsApp через Baileys

Рабочий референсный адаптер на Node: привязывает номер WhatsApp как связанное устройство, как WhatsApp Web, — без бизнес-аккаунта Meta и без провайдера. Для отладки сценариев с WhatsApp, небольших команд и собственного использования.Риск: работает через неофициальный клиент WhatsApp Web, и WhatsApp может заблокировать привязанный номер — привязывайте отдельный номер, который не жалко потерять.Claims сверх базовых: phone_number, given_nameПодтверждение в канале: да — опрос с двумя вариантамиСекретное сообщение: нужно — в один тапПример: samples/node/custom-channel-whatsapp-baileys/.
Как его написать, с референсными адаптерами на Python и Node, — HTTP-адаптер канала на любом языке.

В тестировании: следующий релиз

Пять адаптеров уже тестируются и войдут в поставку следующего релиза — каналов станет 8+. Viber и LINE открывают свои рынки, Messenger и Instagram работают на платформе Meta, которую уже использует адаптер WhatsApp, а Slack приносит вход и step-up в рабочее пространство.

Viber

Claims сверх базовых: picture, localeПодтверждение в канале: даСекретное сообщение: не нужно

LINE

Claims сверх базовых: picture, localeПодтверждение в канале: даСекретное сообщение: нужно — в один тап

Messenger

Claims сверх базовых: given_name, family_name, picture, localeПодтверждение в канале: даСекретное сообщение: не нужно

Instagram Direct

Claims сверх базовых: preferred_username, pictureПодтверждение в канале: даСекретное сообщение: не нужно

Slack

Claims сверх базовых: given_name, family_name, preferred_username, email, picture, localeПодтверждение в канале: даСекретное сообщение: нужно — вводится вручнуюСсылки платформы не умеют заполнять сообщение, поэтому код с экрана пользователь вводит сам.

В плане: enterprise

Рабочие мессенджеры — для входа и step-up внутри компании.

Microsoft Teams

Claims сверх базовых: given_name, family_name, preferred_username, emailПодтверждение в канале: даСекретное сообщение: нужно — в один тап

Discord

Claims сверх базовых: preferred_username, picture, localeПодтверждение в канале: даСекретное сообщение: нужно — вводится вручнуюСсылки платформы не умеют заполнять сообщение, поэтому код с экрана пользователь вводит сам.

В плане: региональные

Платформы, которые лидируют на своих рынках.

WeChat

Claims сверх базовых: localeПодтверждение в канале: даСекретное сообщение: не нужно

Zalo

Claims сверх базовых: pictureПодтверждение в канале: даСекретное сообщение: уточняется

BiP

Claims сверх базовых: phone_number — по разрешению Turkcell на открытые номераПодтверждение в канале: уточняетсяСекретное сообщение: уточняется

Threema

Claims сверх базовых: нет — только базовыеПодтверждение в канале: нетСекретное сообщение: нужно — в один тап

KakaoTalk

Claims сверх базовых: emailНомер телефона: не через бота — только вашей собственной интеграцией Kakao Login или Kakao Sync (номер телефона)Подтверждение в канале: даСекретное сообщение: уточняется