Blog
Feature
6 de fevereiro de 20266 min

Autenticação por QR code: o padrão WhatsApp Web para TAMSIV

Para conectar o site ao aplicativo móvel, eu queria algo instantâneo. O padrão WhatsApp Web: escanear um QR code e pronto, conectado.

O fluxo

O usuário abre tamsiv.com → o QR code aparece → escaneia com o aplicativo → o site se conecta instantaneamente. Do ponto de vista técnico: um balé de tokens e canais em tempo real.

A arquitetura

O QR code codifica um UUID de sessão. O site cria uma entrada Supabase com status "pending" e se inscreve via Realtime. O aplicativo móvel escaneia, confirma com seu JWT existente. O backend gera um token de autenticação para a web.

O fallback polling

Se o Realtime não se conectar em 3 segundos, muda para um polling HTTP a cada 2 segundos. Funciona em qualquer lugar, mesmo atrás de proxies corporativos.

Segurança

  • O QR code expira após 5 minutos
  • Uso único — uma sessão só pode ser confirmada uma vez
  • Autenticação necessária no celular
  • Token efêmero para iniciar a sessão web

A UX

Regeneração automática do QR a cada 4min30 com contagem regressiva visual. Opções de e-mail/senha e Magic Link como backup. ~300 linhas no lado web, 150 no lado móvel. O tipo de recurso que faz você dizer "isso foi bem pensado".