Skip to main content
В репозитории (veriqa.app/source) в каталоге samples/ лежит галерея примеров. Всё там — под лицензией MIT и написано так, чтобы переносить к себе в проект.
Veriqa живёт на стороне издателя токенов. Приложение, которое только впускает пользователей, остаётся обычной проверяющей стороной OpenID Connect — без пакета Veriqa и без SDK. Пакеты Veriqa нужны только там, где приложение само является издателем (встроенный режим) или вызывает API подтверждений с сервера.
Примеры бывают двух видов:
  • Запускаемые — проекты со своим README.md, портами и конфигурацией. .NET-пример запускается dotnet run --project <путь>; примеры вне .NET, которые работают рядом с Veriqa, — docker compose up в своей папке.
  • Код для копирования — один файл на стек с полной обвязкой клиента. Проекта вокруг него нет: окружающее приложение — ваше.

Примеры сценариев

Каждый показывает один механизм и ничего больше. Пример Aspire и хост собственного канала занимают один порт 7320 — запускайте их по очереди.

Пример для агентского харнеса

claude-code/ — плагин Claude Code, а не .NET-проект: выбранные действия агента — git push, старт длинного цикла команд, затратный прогон с оценкой токенов — ждут, пока человек одобрит их в мессенджере; для затратного прогона — цепочкой из двух согласующих. См. «Подтверждения в Claude Code» и README примера.

Примеры-витрины

Два примера в samples/dotnet/showcase/ изображают продукт целиком, чтобы сценарии было видно от начала до конца так, как их встречает пользователь. Каждый — один процесс в трёх ролях: встроенный издатель, OIDC-клиент браузера и бэкенд, создающий подтверждения.

Nova Stream — стриминг на телевизоре

dotnet/showcase/streaming-tv · https://localhost:7350. Вход по QR с дивана, приветственная карточка из claims канала, узнавание вернувшегося зрителя, степ-ап при покупке фильма. Управление пультом, написан под браузеры телевизоров (Tizen 5.5, webOS 5), работает за HTTP-туннелем.

Helio — поддержка клиентов

dotnet/showcase/support-desk · https://localhost:7360. Публичная страница поддержки, вход, карточка клиента и степ-ап перед закрытием или удалением обращения.
Что они показывают сверх примеров сценариев:
  • Карточку человека из claims, которые дал канал: имя, аватар, @username и замаскированный ID (Telegram), замаскированный телефон (WhatsApp), адрес (Email). Идентификаторы маскируются на сервере, полное значение в браузер не уходит.
  • Степ-ап, адресованный вошедшему. Подтверждение называет личность текущей сессии (expected_identities), и операция применяется, только если совпал matched_type, — подтверждение с другого аккаунта ничего не меняет.
  • Квитанции по назначению. Вопрос входа заменяется на «Sign-in to … confirmed ✅» (ReplacePrompt); подтверждение сохраняет вопрос и получает квитанцию отдельным сообщением (NewMessage, задан в записи клиента бэкенда). См. OutcomeNotice в Конфигурации.
  • Собственные страницы Veriqa под брендом. Страница входа и окно подтверждения — экраны продукта; через AuthPageDesign заданы только бренд, цвет, тема и — для телевизора — таблица стилей.
Бот Telegram доставляет обновления на один адрес webhook, поэтому с одним токеном бота входы принимает только один из двух примеров-витрин одновременно.

Запуск .NET-примеров

  • .NET SDK 10.0+ и доверенный локальный HTTPS-сертификат (dotnet dev-certs https --trust).
  • Включите хотя бы один канал и дайте ему учётные данные. Все примеры поставляются с "Enabled": false у всех каналов; без включённого канала страница входа отвечает no_channels_available. Быстрее всего — токен бота, см. Настройка каналов и README самого примера.
  • Пары вроде login + login-client запускайте начиная с издателя: иначе клиент не пройдёт discovery.