Blog
Feature
6 février 20266 min

Auth par QR code : le pattern WhatsApp Web pour TAMSIV

Pour connecter le site web à l'app mobile, je voulais quelque chose d'instantané. Le pattern WhatsApp Web : scanner un QR code et boom, connecté.

Le flux

L'utilisateur ouvre tamsiv.com → QR code s'affiche → scanne avec l'app → le site se connecte instantanément. Du point de vue technique : un ballet de tokens et de channels temps réel.

L'architecture

Le QR code encode un UUID de session. Le site crée une entrée Supabase avec statut "pending" et s'abonne via Realtime. L'app mobile scanne, confirme avec son JWT existant. Le backend génère un token d'auth pour le web.

Le fallback polling

Si le Realtime ne se connecte pas en 3 secondes, bascule sur un polling HTTP toutes les 2 secondes. Fonctionne partout, même derrière des proxies d'entreprise.

Sécurité

  • QR code expire après 5 minutes
  • Usage unique — une session ne peut être confirmée qu'une fois
  • Auth requise côté mobile
  • Token éphémère pour initier la session web

L'UX

Auto-régénération du QR toutes les 4min30 avec countdown visuel. Options email/password et Magic Link en backup. ~300 lignes côté web, 150 côté mobile. Le genre de feature qui fait dire "c'est bien pensé".