Skip to main content
Boa parte dos cadastros começa no desktop, e webcam de notebook rende captura pior que a câmera traseira de um celular. A entry.url resolve isso sem chamada nova: é a mesma jornada, aberta em outro aparelho.

Confira o exemplo

Os arquivos desta POC, com o destino de cada um.

Gerar o QR

A entry.url já é a jornada completa. Transformá-la em QR é tudo o que falta.
app/api/verifications/route.ts
A entry.url carrega a credencial da jornada. Não a coloque em <a href>, em parâmetro de query, em log ou em ferramenta de analytics: o QR é a única superfície onde ela deve aparecer, e para o titular daquela verificação.

Mostrar e esperar

app/registration/qr.tsx

O estado vem do seu banco

A rota que o desktop consulta lê o que o seu webhook já gravou. Não chame a Legitimuz num intervalo: além de bater no teto da chave, o desfecho confiável é o que você persistiu.
app/api/verifications/state/route.ts

Antes de rodar

.env
Use uma integração sandbox. Nenhum dos três valores vai para o browser ou para o app.

O que esta POC não faz

POC é código para entender o fluxo, não para copiar em produção. Em todas elas, authenticate() é um stub, db é um objeto de mentira e não há migration, observabilidade nem retentativa própria.
  • Polling simples de 3 segundos. Em produção, SSE ou WebSocket poupa requisição.
  • Sem botão de “reenviar por SMS”.
  • Sem tratamento de titular que abre o QR duas vezes em aparelhos diferentes.

Próximo passo

Retomada e expiração

O que fazer quando a jornada expira antes de terminar.

WhatsApp

A mesma entrega, quando o titular não está na sua tela.