Skip to main content
In hop mode the QR code on the sign-in page carries a short one-time link to your Veriqa server instead of the messenger link. The phone opens it, the server records the scan and sends the user on to the messenger or to email. That one extra hop gives the best user experience Veriqa offers.
We recommend turning hop mode on. It is off by default only because it needs an issuer set as an absolute https address that the phone can reach. See how to turn it on below.

Key differences

What the user sees

  1. On a computer, a TV or a kiosk, the user scans the QR code with their phone camera.
  2. The phone opens the short link. The sign-in page on the computer immediately says “QR code scanned” and shows what to do next.
  3. The phone moves on to the messenger — directly or through a launch page, depending on the redirect style.
  4. The user confirms with a single tap, and the sign-in completes on the computer.
If they scanned with the wrong device or changed their mind, the “Choose another way” button brings the channel choice back on the same page, for the same sign-in. Once the channel has answered the start, the button goes away: the sign-in is now bound to that channel.

Redirect style

Interstitial is more reliable where a direct jump into the messenger app does not always work. The Email channel has rules of its own — see Email under hop mode.

How to turn it on

appsettings.json
Turn it on for the whole server, for a single channel (Veriqa:Channels:{Channel}:HopEnabled) or for one application, in its OIDC client record. All the keys, and the order in which they override each other, are in the Veriqa:HopMode reference. Every hop link is built on Veriqa:OpenIddict:Server:Issuer, so with hop mode on, the issuer must be an absolute https address — otherwise the server does not start. To try hop mode on your own machine, expose Veriqa through an HTTPS tunnel — see Testing the integration locally.

Security

  • It is not a link shortener. The server always derives where to send the user from the transaction, never from the link, so a hop link cannot be turned into an open redirect.
  • The context of the scanning phone is a risk signal, not an authentication factor. It helps spot a request that is not the user’s own, but the sign-in is still confirmed by the user in their own messenger. The HopMode.Collect* keys decide what is collected: IP, browser and device type are on by default; the browser fingerprint and geolocation only if you turn them on.