> ## 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.

# Как работает auth-поток

> Полный OIDC + Veriqa поток: от старта транзакции до выпуска токенов OpenIddict.

Veriqa работает **внутри вашего ASP.NET Core-хоста** и является auth-сервером OpenIddict. Поток
входа всегда один и тот же: старт транзакции, подтверждение в доверенном канале на телефоне,
завершение аутентификации в OpenIddict. Для приложения это обычный OIDC Authorization Code Flow —
Veriqa лишь заменяет форму логина на подтверждение в мессенджере.

```mermaid theme={null}
sequenceDiagram
    autonumber
    participant App as Клиент (desktop)
    participant V as Veriqa (в вашем хосте)
    participant OI as OpenIddict
    participant Ch as Доверенный канал (телефон)

    App->>V: Redirect на /connect/authorize
    V-->>App: Страница входа + QR / кнопки каналов
    Note over V,Ch: Открывается транзакция, привязанная к выбранному каналу
    Ch->>V: Пользователь открывает канал, подтверждает вход
    V->>V: Обновление состояния транзакции
    App->>V: Live-статус (SignalR) или polling /api/transaction/{id}/status
    V->>OI: Завершение аутентификации (ClaimsPrincipal)
    OI-->>App: code → /connect/token → токены
```

## Шаг за шагом

<Steps>
  <Step title="Старт транзакции">
    Приложение редиректит пользователя на `/connect/authorize`. Veriqa открывает транзакцию с
    контекстом клиента, correlation id, временем жизни и выбранным каналом, и рендерит страницу
    входа с QR и кнопками каналов.
  </Step>

  <Step title="Подтверждение в канале">
    Пользователь открывает доверенный канал на телефоне (MAX / Telegram / WhatsApp /
    другие мессенджеры / Email) и подтверждает вход. Адаптер канала возвращает в транзакцию
    resolved identity.
  </Step>

  <Step title="Завершение">
    Десктоп узнаёт о завершении по live-обновлению (SignalR) или через polling статуса
    транзакции, после чего Veriqa формирует `ClaimsPrincipal` и передаёт его OpenIddict.
  </Step>

  <Step title="Выпуск токенов">
    OpenIddict выпускает authorization code, приложение меняет его на токены через
    `/connect/token`. Дальше — стандартный OIDC.
  </Step>
</Steps>

## Термины Veriqa и OIDC

| Термин Veriqa | Термин OIDC |
| - | - |
| Старт транзакции | запрос `authorize` |
| Подтверждение в канале | аутентификация пользователя |
| Завершение (SignalR / polling) | `callback` → выпуск токена |
| Resolved identity | claims ID-токена |

## Дальше

<CardGroup cols={2}>
  <Card title="OIDC + Veriqa: разбор" icon="key" href="/docs/ru/concepts/oidc-explainer">
    Где именно Veriqa встаёт в стандартный OIDC-поток — и чего не делает.
  </Card>

  <Card title="Быстрый старт .NET" icon="rocket" href="/docs/ru/quickstart/dotnet">
    Подключите поток в своём приложении.
  </Card>
</CardGroup>


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