What works today
Where the device has a browser or a webview, surfaces differ only in how the initiator learns
that it finished: the flow itself is the same authorize → code → token. Where it has none, the
application’s backend creates a confirmation and exchanges it for the user’s
id_token — see
Smart TV and keyboard-free surfaces. A device with no backend of its own has
no path yet: a full implementation of device flow is in progress.Surfaces with no convenient input
This is where being cross-device pays off most. On a TV, a set-top box or a kiosk, typing a password means picking letters with a remote; a QR code plus a confirmation on the phone removes the problem entirely. Two things help on such surfaces:- live status — the
/hubs/authSignalR hub, withGET /api/transaction/{id}/statuswhere WebSockets are unavailable; - initiator context — the confirmation message shows the person what they are confirming. On a kiosk or a shared device that matters more than on a personal laptop: see Initiator context.
When the initiator is a shared device
An office kiosk, a terminal in a hall, a screen by the entrance: the device is shared, but the person confirming is one particular individual. Two things are worth keeping in mind. A transaction belongs to a session, not to a device. The single-use cookie between callback and authorize is bound to the latest load of the sign-in page: if the page reloaded, the confirmation belongs to a different transaction and Veriqa returnsbrowser_nonce_mismatch. That is protection
against confirming someone else’s session — details in
Troubleshooting.
The QR on display is a secret for the length of the transaction. On a shared surface it is
worth shortening the sign-in screen’s lifetime and not leaving the code up after it completes.
On a shared device people often would rather not type their own passwords at all. Someone with no
messaging app on their phone can confirm with their Google or Apple account instead: the provider’s
password stays on the phone, and the shared device only shows the QR code — see
Sign in with a Google or Apple account, confirmed on the phone.
Place as part of the scenario
Binding a sign-in to a physical place (a QR on a printer or on a dedicated office screen) is covered in the Place and identity scenario.What does not depend on the surface
- the set of confirmation channels — that is about the user’s phone, not about the initiator;
- the claims and their contents;
- the client requirement for a browser sign-in: a confidential client with a secret, or a public client with PKCE S256. The server-to-server entry is for a confidential client only.