Molte app (banking, note private, password manager, salute) devono proteggere i dati sensibili con un secondo livello di sicurezza. Invece di chiedere ogni volta la password, puoi sfruttare l'autenticazione biometrica del dispositivo: impronta digitale, Face ID o, in fallback, il PIN di sistema.
In Flutter il pacchetto ufficiale è local_auth: espone un'API unica che sotto il cofano usa BiometricPrompt su Android e LocalAuthentication (LAContext) su iOS.
In questo tutorial costruiremo:
- la configurazione nativa corretta per Android e iOS (è il punto dove si blocca il 90% degli sviluppatori);
- un servizio riutilizzabile
BiometricServicecon gestione completa degli errori; - un gate biometrico che protegge un token salvato in
flutter_secure_storage; - il ri-blocco automatico dell'app quando torna dal background.
⚠️ Nota importante:
local_authverifica chi sta usando il dispositivo, non cifra nulla da solo. Va sempre abbinato a uno storage sicuro per ottenere una protezione reale.