Autenticazione tramite QR code: il pattern WhatsApp Web per TAMSIV
Per connettere il sito web all'app mobile, volevo qualcosa di istantaneo. Il pattern WhatsApp Web: scansionare un QR code e boom, connesso.
Il flusso
L'utente apre tamsiv.com → viene visualizzato un QR code → lo scansiona con l'app → il sito si connette istantaneamente. Dal punto di vista tecnico: un balletto di token e canali in tempo reale.
L'architettura
Il QR code codifica un UUID di sessione. Il sito crea una voce Supabase con stato "pending" e si abbona tramite Realtime. L'app mobile scansiona, conferma con il suo JWT esistente. Il backend genera un token di autenticazione per il web.
Il fallback polling
Se Realtime non si connette in 3 secondi, passa a un polling HTTP ogni 2 secondi. Funziona ovunque, anche dietro proxy aziendali.
Sicurezza
- Il QR code scade dopo 5 minuti
- Uso singolo — una sessione può essere confermata solo una volta
- Autenticazione richiesta lato mobile
- Token effimero per avviare la sessione web
L'UX
Rigenerazione automatica del QR ogni 4min30 con countdown visivo. Opzioni email/password e Magic Link come backup. ~300 righe lato web, 150 lato mobile. Il tipo di funzionalità che fa dire "è ben pensato".