El siguiente artículo está traducido al castellano a partir del original, escrito por Paul Lefebvre, y publicado en el Blog de Xojo que puedes encontrar en este enlace.
Con la nueva clase UserAuthentication
, disponible a partir de Xojo 2021 Release 1, puedes pedir ahora que un usuario de iOS se autentique utilizando Face ID, Touch ID o con su contraseña/código. Aquí te cuento como.
En un proyecto de iOS, añade un objeto UserAuthentication
a tu pantalla y cambia su nombre a Authenticator. Aparecerá en el área de la bandeja en la parte inferior. Añade también un Botón (Button), una Etiqueta (Label) y una TextArea.
En Authenticator, añade los eventos AuthenticationSucceeded
y Error
. Se ejecuta el evento AuthenticationSucceeded
cuando tiene éxito la solicitud de autenticación mediante huella, reconocimiento facial o uso de contraseña. Escribe el siguiente código en el evento para indicarlo:
Label1.Text = "Local Authentication" TextArea1.Text = "Success!"
Se llama al evento Error
cuando no se recibe una validación correcta de la huella, reconocimiento facial o introducción de la contraseña. Escribe este código en el evento Error para indicar el fallo:
Label1.Text = "Local Authentication" If error <> Nil Then TextArea1.Text = "Error:" + EndOfLine.iOS + error.Message + EndOfLine + _ error.ErrorNumber.ToString Else TextArea1.Text = "Unknown error" End If
Se utilizará el botón para solicitar la autenticación. Añade este código en el evento Pressed:
Authenticator.Request("Please verify yourself.", _ Authenticator.SensorType = UserAuthentication.SensorTypes.None)
Ahora, puedes ejecutar esta aplicación en el Simulador. En el menú Features encontrarás la opción para Face ID o Touch ID, en función del tipo de simulador que estés ejecutando. En dicho menú, selecciona la opción Enrolled para activar el sensor apropiado.
En la app, haz tap sobre el botón para solicitar la autenticación. En un dispositivo con Touch ID obtendrás la siguiente pantalla:
Vuelve al menú Features en el Simulador y elige la opción “Matching Touch””. Verás entonces el texto “Success!” en la etiqueta. Si eliges la opción “Non-Matching Touch”, iOS te preguntará que introduzcas tu contraseña otra vez (el Simulador acepta cualquier cosa como la contraseña). Si fallas demasiadas veces o pulsas Cancel, entonces se mostrará el error en el TextArea.
Para dispositivos con Face ID, también querrás dirigirte a la opción “Capabilities Editor” (haz clic en la opción Build Settings y elige la pestaña “Advanced” en el Inspector) para activar la opción User Authentication y haz clic en “Options” para introducir un mensaje de usuario personalizado.
Descarga el proyecto de ejemplo.