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

# Вход на Smart TV или в киоске

> Рецепт: вход по QR-коду на устройстве без клавиатуры — бэкенд создаёт подтверждение, устройство показывает QR-код, пользователь подтверждает на телефоне, бэкенд открывает сессию.

Ваше приложение работает на телевизоре, в киоске или на устройстве, где вводить нечем. Вы хотите,
чтобы пользователь входил по QR-коду на экране и подтверждал вход в мессенджере на телефоне.

<Note>
  Если на устройстве есть браузер или webview, подойдёт обычный вход — по рецепту
  [Вход в веб-приложение](/docs/ru/recipes/web-app-sign-in). Ниже — путь без браузера.
</Note>

## Что понадобится

* сервер Veriqa с включённым каналом;
* бэкенд у приложения: секрет клиента нельзя хранить на устройстве, из приложения его извлекут;
* место на экране под QR-код с полосой «Powered by Veriqa» под ним.

## Шаги

<Steps>
  <Step title="Заведите отдельного клиента для устройства">
    Клиенту нужны `AllowClientCredentials`, `AllowConfirmationTokenGrant`, `openid` в
    `AllowedScopes` и объявленный тип действия с текстом сообщения — см.
    [Настройте клиента](/docs/ru/reference/confirmation-api#1-настройте-клиента).
  </Step>

  <Step title="Создайте подтверждение с бэкенда">
    `POST /api/transaction/confirmation` возвращает `channel_entry` с QR-картинкой и ссылкой —
    см. [Создайте подтверждение](/docs/ru/reference/confirmation-api#3-создайте-подтверждение).
  </Step>

  <Step title="Покажите QR-код на экране">
    Приложение выводит картинку `qr` на любом TV-SDK; браузер для этого не нужен — см.
    [Что есть сегодня](/docs/ru/scenarios/smart-tv#что-есть-сегодня).
  </Step>

  <Step title="Дождитесь исхода">
    Бэкенд опрашивает `GET /api/transaction/{id}/result`, пока исход не перестанет быть
    `pending`, — см. [Прочитайте исход](/docs/ru/reference/confirmation-api#4-прочитайте-исход).
  </Step>

  <Step title="Откройте сессию">
    Подтверждённую транзакцию бэкенд обменивает на `id_token`, сохраняет `sub` и открывает свою сессию
    на устройстве — см. [Привязка с сервера без входа](/docs/ru/scenarios/channel-linking#привязка-с-сервера-без-входа).
  </Step>
</Steps>

## Как проверить

Запустите вход на устройстве, отсканируйте QR-код телефоном и подтвердите в мессенджере. Бэкенд
должен получить исход `confirmed`, а после обмена — `id_token` с `sub` того, кто подтвердил.

`refresh_token` в этом пути нет: транзакция погашается один раз, и долгую сессию на устройстве держит
само приложение.

## Куда дальше

* [Nova Stream](/docs/ru/samples/showcase/streaming-tv) — пример-витрина на телевизоре: вход через
  страницу Veriqa и покупка, которую подтверждают через API серверного подтверждения;
* [Smart TV и поверхности без клавиатуры](/docs/ru/scenarios/smart-tv) — чем это отличается от device
  flow и чего сегодня нет;
* [Видео: вход на телевизоре](/docs/ru/videos/tv-sign-in).


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