> ## Documentation Index
> Fetch the complete documentation index at: https://veriqa.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Базовые сценарии

> Два механизма, из которых собран любой сценарий Veriqa, — вход и регистрация и серверная транзакция — и чем они различаются.

Любой сценарий Veriqa собран из одного из **двух механизмов**. Для пользователя они выглядят
одинаково — QR-код на экране или кнопка на телефоне, затем одно касание в мессенджере, — но
транзакцию запускает разная сторона и возвращается разный результат.

## Вход и регистрация

Обычный поток OpenID Connect. Ваше приложение отправляет пользователя на `/connect/authorize`, окно
входа показывает QR-код (или кнопку канала на телефоне), пользователь подтверждает в мессенджере, а
приложение обменивает код на токены в `/connect/token`.

* **Регистрация происходит тем же действием** — ни формы, ни пароля, который нужно придумать.
* Результат — `id_token` с `sub`, `auth_time` и запрошенными claims; сессию открываете вы.
* Ваше приложение остаётся **обычным OIDC-клиентом**: без пакета Veriqa и SDK, только настройка.

Подробно: [Вход и регистрация без пароля](/docs/ru/scenarios/passwordless-login),
[Как работает auth-поток](/docs/ru/concepts/auth-flow).

## Серверная транзакция

Подтверждение, которое запрашивает ваш **бекенд**, — без входа и без редиректа браузера. Бекенд
получает токен по Client Credentials, создаёт транзакцию запросом
`POST /api/transaction/confirmation` для **объявленного типа действия**, показывает пользователю
QR-код или ссылку из ответа и читает исход через `GET /api/transaction/{id}/result`.

* Пользователь читает **формулировку, объявленную на вашем хосте**, с типизированными значениями
  слотов — «Удалить обращение A-900?», «Купить за 4.99 EUR?», — а не произвольный текст вызывающей
  стороны.
* `expected_identities` разрешает подтвердить только конкретному человеку — например, владельцу
  текущей сессии.
* Сессия не создаётся. Подтверждённую транзакцию при желании можно обменять на `id_token`
  подтвердившего.

Подробно: [API серверного подтверждения](/docs/ru/reference/confirmation-api).

## Чем они различаются

| | Вход и регистрация | Серверная транзакция |
| - | - | - |
| Кто запускает | Браузер или приложение пользователя, редиректом | Ваш бекенд, вызовом API |
| Протокол | Стандартный OpenID Connect: `/connect/authorize` → `/connect/token` | Client Credentials + `POST /api/transaction/confirmation` |
| Что подтверждает пользователь | Вход в ваше приложение | Объявленное действие с его параметрами |
| Кто может подтвердить | Любой — так и появляется новый аккаунт | Любой либо только те, кто назван в `expected_identities` |
| Что вы получаете | `id_token` и токены; сессию открываете вы | Исход — `confirmed`, `declined`, `expired` или `failed`; при желании `id_token` подтвердившего |
| Что нужно приложению | OIDC-клиент и его настройка | Запись клиента с `AllowClientCredentials`, объявленный тип действия и серверный вызов |

<Tip>
  **Простое правило.** Если результат — «пользователь вошёл», это вход. Если результат — «это
  действие одобрено», а выполняет действие ваш сервер, — это серверная транзакция.
</Tip>

## Сценарии и их механизм

| Сценарий | Механизм | Подробно |
| - | - | - |
| Вход и регистрация без пароля | Вход | [Вход без пароля](/docs/ru/scenarios/passwordless-login) |
| Вход с привязкой канала | Вход; серверная транзакция, когда редиректа нет | [Привязка канала](/docs/ru/scenarios/channel-linking) · [Привязка с сервера](/docs/ru/scenarios/channel-linking#привязка-с-сервера-без-входа) |
| Второй фактор и step-up | Вход — повторный authorize и проверка `auth_time` | [Step-up](/docs/ru/scenarios/step-up) |
| Подтверждение конкретного действия вошедшим человеком | Серверная транзакция с `expected_identities` | [API подтверждения](/docs/ru/reference/confirmation-api) · видео: [десктоп](/docs/ru/videos/desktop-step-up), [телефон](/docs/ru/videos/mobile-step-up), [телевизор](/docs/ru/videos/tv-step-up) |
| Замена SMS-кодов | Вход | [Замена SMS-кодов](/docs/ru/scenarios/sms-replacement) |
| Заявки и обратная связь без CAPTCHA | Вход без открытия сессии | [Заявки без CAPTCHA](/docs/ru/scenarios/lead-capture) · [Подтверждённая заявка без входа](/docs/ru/integrations/confirmed-form) |
| Восстановление доступа | Вход через привязанный канал | [Восстановление доступа](/docs/ru/scenarios/account-recovery) |
| Поверхности без клавиатуры | Вход, где есть браузер; серверная транзакция, где его нет | [Поверхности входа](/docs/ru/scenarios/surfaces) |
| Подтверждения для ИИ-агентов | Серверная транзакция | [Подтверждения в Claude Code](/docs/ru/research/claude-code-approvals) |

Рецепты всех сценариев входа собраны в [Сценариях интеграции](/docs/ru/guides/scenarios).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.