Lector de huellas en Xamarin Forms

Tras un largo periodo sin escribir nada, vuelvo a la carga con este interesante y sencillo post en el que voy a explicar como autenticar a un usuario mediante el lector de huellas (o face id en los iPhone que así realicen la autenticación)

El proceso es tan sencillo que bastará con añadir un paquete nuget y escribir algo de configuración en las distintas plataformas. Con esto, nuestra aplicación estaría lista para realizar dicha autenticación.

Añadiendo paquete Plugin.Fingerprint

El paquete que se va a utilizar en este ejemplo es Plugin.Fingerprint cuya implementación la podemos encontrar en https://github.com/smstuebe/xamarin-fingerprint Es necesario añadir este paquete en los tres proyectos de nuestra solución (Android, iOS y común)

 

Configurando Android

Es necesario añadir los siguientes permisos en el AndroidManifest.xml 

<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" />

Además, hay que añadir la siguiente línea en el MainActivity.cs para que el plugin sea capaz de mostrar un dialogo en el que se solicita la autenticación mediante lector de huella o reconocimiento facial

protected override void OnCreate(Bundle savedInstanceState)
{
    TabLayoutResource = Resource.Layout.Tabbar;
    ToolbarResource = Resource.Layout.Toolbar;

    base.OnCreate(savedInstanceState);

    CrossFingerprint.SetCurrentActivityResolver(() => this);
    global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
    LoadApplication(new App());
}

Configurando iOS

En esta plataforma, lo único que hay que hacer es añadir una nueva entrada al info.plist con la clave NSFaceIdUsageDescription indicando para qué se utilizará la autenticación por huella o reconocimiento facial.

 

Realizando la autenticación

Tras añadir el paquete nuget y configurar las distintas plataformas, lo único que queda por hacer es realizar la autenticación, para ello, basta con utilizar el método AuthenticateAsync, tal y como se muestra a continuación.

var result = await CrossFingerprint.Current.AuthenticateAsync("Tap that fingerprint sensor!");
if (result.Authenticated)
{
    LblResult.Text = "VALID fingerprint";
    LblResult.TextColor = Color.Green;
}
else
{
    LblResult.Text = "INVALID fingerprint";
    LblResult.TextColor = Color.Red;
}

 

Como es habitual, he creado un proyecto en GitHub para ofrecer más detalles de la implementación que he realizado. Espero que os sea de ayuda https://github.com/jorgediegocrespo/XamarinFingerprint

Bibliografía

https://github.com/smstuebe/xamarin-fingerprint
https://www.youtube.com/watch?v=n8m344IxlnY
https://blog.torib.io/2019/04/11/agregando-autenticacion-de-huellas-digitales-con-xamarin-forms/

Anuncios

2 comentarios sobre “Lector de huellas en Xamarin Forms

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.