1. Возврат по redirect_uri — основной путь
Итог входа приезжает так же, как в любом OIDC: браузер инициатора возвращается на redirect_uri с
кодом авторизации, приложение меняет его на токены. Ничего специфичного для Veriqa здесь нет.
Этого достаточно для веб-приложения на десктопе: страница входа сама доводит пользователя до
возврата.
В query возврата приезжает
iss (RFC 9207). Строгому relying party стоит сверять его со своим
ожидаемым issuer — это дешёвая защита от подмены провайдера.2. Живой статус — SignalR
Пока человек берёт телефон, сканирует код и нажимает кнопку, инициатор может показывать состояние: «ждём подтверждения», «подтверждено», «отклонено». Для этого есть хаб/hubs/auth — страница входа
Veriqa использует его сама, и он же доступен вашей поверхности.
Это то, что делает ожидание понятным на телевизоре или киоске, где пользователь не смотрит в
адресную строку.
3. Опрос статуса — запасной путь
Там, где WebSocket недоступен (жёсткий прокси, ограниченная сеть, встроенное устройство), остаётся опрос:Этот эндпоинт — про опрос состояния текущего входа. Подтверждение, которое создаёт ваш сервер,
идёт отдельным входом:
POST /api/transaction/confirmation создаёт транзакцию подтверждения
(приложение аутентифицируется по client credentials и получает transaction_id с точкой входа для
пользователя), а GET /api/transaction/{id}/result отдаёт её исход (токен приложения
обязателен). Полный контракт — в API серверного подтверждения.Если в запросе создания передать include_channel_entries: true, ответ дополнительно несёт
channel_entries — deep link с QR по каждому доступному каналу — рядом с единственным
channel_entry, который остаётся прежним. Какие каналы попадут в список и в каком порядке, задаёт
конфигурация показа каналов (включая запись ui_config), а не ваш запрос. Канал без адреса, который
можно открыть, — например Email в Pull-режиме — в список не попадает, а если подтверждение
настроено на веб-странице, массив пуст. Показать ли один вход из списка — решаете вы.
response_valid_until тогда — самый ранний момент среди всех отданных входов.После исхода confirmed клиент, которому это разрешил интегратор, может получить и id_token
подтвердившего — см. привязку с сервера.Канал Email ведёт себя иначе
Важное для интегратора отличие: шаг веб-подтверждения зависит от канала.- на Telegram возврат
/connect/authorize/callbackсразу отдаёт редирект: человек уже нажал «да» в мессенджере; - на Email тот же адрес показывает страницу «Подтвердите вход» с формой — без её отправки кода не будет.
Что после подтверждения
Поведение окна после успеха настраивается (закрыть, показать сообщение, автоматически продолжить) на стороне конфигурации входа — набором настроек, который владелец проекта или интегратор назначает клиенту. Само получение токенов от этого не зависит.Дальше
Поверхности входа
Чем ТВ и киоск отличаются от десктопа.
Диагностика
Что означают отказы на callback.