top of page
Alejandro Carrazana

Autenticación Biométrica en Flutter: Huella y Face ID

Una de las formas recomendadas para controlar la seguridad y manejar información sensible o confidencial, sin comprometer la experiencia de usuario, es a través de la autenticación biométrica.


En este artículo, veremos todos los detalles acerca de este proceso de autenticación y su implementación en una aplicación Flutter.


¿Qué es la autenticación biométrica?


La autenticación biométrica es un proceso de verificación de la identidad de un individuo mediante la medición y el análisis de características físicas o biológicas únicas, como huellas dactilares, reconocimiento facial, reconocimiento de voz, reconocimiento de iris, reconocimiento de patrón de la retina, entre otros. Estas características son utilizadas para establecer una correspondencia entre un usuario y una plantilla previamente almacenada en un sistema de autenticación.


La autenticación biométrica en dispositivos móviles se refiere al uso de rasgos físicos o biológicos únicos de un individuo para desbloquear un dispositivo móvil o para autorizar transacciones o acceso a aplicaciones y servicios. Los sensores biométricos comunes en los dispositivos móviles incluyen huellas dactilares, reconocimiento facial y reconocimiento de iris.

  • La huella dactilar es probablemente el sensor biométrico más comúnmente utilizado en los dispositivos móviles. Los sensores de huella dactilar se encuentran en la mayoría de los smartphones modernos y se utilizan para desbloquear el dispositivo y para autorizar transacciones.

  • El reconocimiento facial es otro sensor biométrico común en los dispositivos móviles. Utiliza la cámara frontal del dispositivo para escanear el rostro del usuario y compararlo con una imagen previamente almacenada para verificar la identidad.

  • El reconocimiento de iris es otra forma de autenticación biométrica en dispositivos móviles. Utiliza una cámara especial para escanear el iris del usuario y compararlo con una imagen previamente almacenada para verificar la identidad. Este método es considerado más seguro que la huella dactilar y el reconocimiento facial debido a la unicidad del iris humano.

En general, la autenticación biométrica en dispositivos móviles es considerada una forma segura y conveniente de proteger los dispositivos y la información almacenada en ellos.


Implementación de autenticación biométrica en Flutter


El soporte para la autenticación biométrica en Flutter se puede implementar mediante el uso de paquetes de terceros.


Un ejemplo de los paquetes que proporcionan soporte para la autenticación biométrica en Flutter es local_auth. Este paquete proporciona una interfaz simple para interactuar con los sensores biométricos del dispositivo, como huellas dactilares y reconocimiento facial.


Para utilizar el paquete local_auth en su aplicación, primero debe agregarlo como una dependencia en su archivo pubspec.yaml. Luego, puede utilizar las funciones proporcionadas por el paquete para interactuar con los sensores biométricos del dispositivo.


Para más información puede visitar la documentación oficial en GitHub.

En el ejemplo que les presentamos, hemos creado un archivo security_repository.dart, dónde implementamos el paquete local_auth.

import 'package:local_auth/local_auth.dart';
import 'package:local_auth_android/local_auth_android.dart';
import 'package:local_auth_ios/local_auth_ios.dart';

class SecurityRepository {
 final _auth = LocalAuthentication();

 Future<bool> authenticateWithBiometrics({
   required String screenMessage,
 }) async {
   bool authenticated = await _auth.authenticate(
     localizedReason: screenMessage,
     authMessages: [
       IOSAuthMessages(
         localizedFallbackTitle: "Autenticación requerida",
         cancelButton: "Cancelar",
       ),
       AndroidAuthMessages(
         signInTitle: "Autenticación requerida",
         biometricHint: "Validación de Identidad",
         cancelButton: "Cancelar,
       ),
     ],
     options: const AuthenticationOptions(
       stickyAuth: true,
       biometricOnly: true,
     ),
   );

   return authenticated;
 }
}

Luego en correspondencia de la funcionalidad que desee habilitar con la autenticación biométrica sólo necesita ejecutar el método creado.

bool authenticated = await SecurityRepository().authenticateWithBiometrics(
       screenMessage: "Usar Huella o FaceID para iniciar sesión"));

Como configuración adicional, para iOS debe agregar la siguiente llave al archivo Info.plist:

<key>NSFaceIDUsageDescription</key>
<string>Face ID</string>

En el caso de Android, también deberá hacer algunos ajustes:

  • Establecer la versión 23 como la mínima del SDK del proyecto Android.

  • Sustituir en el archivo MainActivity.java, la clase FlutterActivity por FlutterFragmentActivity.

  • Agregar los permisos biométricos en el fichero AndroidManifest.xml: <uses-permission android:name="android.permission.USE_BIOMETRIC"/>

De esta forma queda configurada la autenticación biométrica en Flutter.


¡Síguenos para más contenidos sobre el desarrollo de aplicaciones Flutter!



bottom of page