If the device has a browser or a webview, a regular sign-in works — see the
Passwordless sign-in for a web app recipe. Below is the path without a browser.
What you need
- a Veriqa server with a channel enabled;
- a backend for the app: the client secret cannot be stored on the device, because it can be extracted from the app;
- room on the screen for the QR code with the “Powered by Veriqa” strip under it.
Steps
1
Create a separate client for the device
The client needs
AllowClientCredentials, AllowConfirmationTokenGrant, openid in
AllowedScopes and a declared action type with the message text —
Configure the client.2
Create a confirmation from the backend
POST /api/transaction/confirmation returns a channel_entry with the QR image and the link —
Create the confirmation.3
Show the QR code on the screen
The app displays the
qr image with any TV SDK; no browser is needed —
What exists today.4
Wait for the outcome
The backend polls
GET /api/transaction/{id}/result until the outcome is no longer pending —
Read the outcome.5
Open the session
The backend exchanges the confirmed transaction for an
id_token, stores the sub and opens its
own session on the device —
Linking from your server.How to check
Start a sign-in on the device, scan the QR code with your phone and confirm in the messenger. The backend should receive theconfirmed outcome and, after the exchange, an id_token with the sub
of whoever confirmed.
There is no refresh_token on this path: the transaction is redeemed once, and the app itself keeps
the long-lived session on the device.
Next steps
- Nova Stream — a showcase sample on a TV: sign-in through the Veriqa page and a purchase confirmed through the server-to-server confirmation API;
- Smart TV and keyboard-free surfaces — how this differs from device flow and what does not exist yet;
- Video: sign-in on a TV.