Skip to main content
Вход через Veriqa устроен кросс-девайсно: инициатор показывает QR-код, а подтверждение происходит на телефоне. Из-за этого набор поверхностей, откуда можно начать вход, шире обычного — инициатору достаточно уметь показать код и дождаться результата.

Что работает сегодня

Если на устройстве есть браузер или webview, поверхности различаются только тем, как инициатор узнаёт о завершении: сам поток — тот же authorize → code → token. Если браузера нет, бэкенд приложения создаёт подтверждение и обменивает его на id_token пользователя — см. Smart TV и поверхности без клавиатуры. Для устройства без собственного бэкенда пути пока нет: полная реализация device flow сейчас в работе.

Поверхности без удобного ввода

Именно здесь кросс-девайсность окупается сильнее всего. На телевизоре, приставке или киоске ввод пароля — это набор символов пультом; QR-код и подтверждение в телефоне снимают задачу целиком. Для таких поверхностей полезны две вещи:
  • живой статус — SignalR-хаб /hubs/auth, а там, где WebSocket недоступен, опрос GET /api/transaction/{id}/status;
  • контекст инициатора — в сообщении подтверждения человек видит, что именно он подтверждает. Для киоска и общего устройства это важнее, чем для личного ноутбука: см. Контекст инициатора.

Где инициатор — общее устройство

Киоск в офисе, терминал в зале, экран у входа: устройство общее, а подтверждает конкретный человек. Здесь стоит держать в голове две вещи. Транзакция принадлежит сеансу, а не устройству. Одноразовая кука между callback и authorize привязана к последней загрузке страницы входа: если страница перезагрузилась, подтверждение относится уже к другой транзакции, и Veriqa вернёт browser_nonce_mismatch. Это защита от подтверждения чужой сессии — подробности в Диагностике. Показанный QR — секрет ровно на время транзакции. На общей поверхности имеет смысл сокращать время жизни экрана входа и не оставлять код висеть после завершения.

Место как часть сценария

Привязка входа к физическому месту (QR на принтере или на выделенном экране в офисе) — предмет исследования, см. Место и личность.

Что не зависит от поверхности

  • набор каналов подтверждения — он про телефон пользователя, а не про инициатора;
  • claims и их состав;
  • требование к клиенту при входе через браузер: confidential-клиент с секретом либо public-клиент с PKCE S256. Server-to-server вход — только для confidential-клиента.