Cómo utilizar Touch ID para iniciar sesión en su aplicación de forma más rápida y sencilla

Cómo usar Touch ID para un inicio de sesión más rápido y fácil en su aplicación

Es una observación común que los usuarios abandonen un poco su pantalla de inicio de sesión. ¿Así es como abordo mi adicción a Facebook? . Este tutorial le enseña cómo utilizar T ouch ID para un inicio de sesión más rápido y fácil. Pronto te explicaré los pasos, solo déjame informarte un poco.

La mayoría de las aplicaciones utilizan Touch ID como autenticación de segundo grado. Este tutorial NO trata de proporcionar una autenticación de segundo grado (aunque también puede hacerlo si lee este artículo). Se trata de usar Touch ID para hacer esa llamada al servidor para iniciar sesión como usuario.

Ahora, ¿cómo se obtienen las credenciales del usuario de su huella digital para realizar esa llamada al servidor? ? Aquí es donde entra el servicio K eychain . Cuando el usuario se registra o inicia sesión en su aplicación por primera vez, guarde las credenciales en el llavero de su aplicación. La próxima vez, cuando el usuario cierre la sesión y luego vuelva a visitar la pantalla de inicio de sesión, aparecerá una ventana emergente pidiéndole que inicie sesión con Touch ID. Cuando el usuario proporcione un Touch ID válido, obtenga esas credenciales de usuario que guardó anteriormente en el llavero, realice su llamada API y ¡Boom!?.

Entonces, hay dos pasos involucrados aquí:

  • Primero, debe guardar las credenciales del usuario en el llavero. Puede hacer esto cuando el usuario se registre o cuando inicie sesión en su aplicación por primera vez.
  • En segundo lugar, use Touch ID para verificar al usuario y luego recupere sus credenciales del servicio de llavero.

Estoy usando KeychainPasswordItem , un buen envoltorio sobre Keychain disponible en developer.apple.com aquí. Tienen un ejemplo muy bueno y detallado sobre cómo usar este llavero genérico. Ve a echar un vistazo.

Como parte del primer paso, use el método de llamada a continuación con el correo electrónico del usuario como cuenta y contraseña cuando el usuario se registre e inicie sesión.

Estamos almacenando el correo electrónico del usuario en UserDefaults para usarlo más tarde. Sería mejor si mostrara una ventana emergente para pedirle permiso al usuario para usar esta función. Me estoy saltando esa parte para este tutorial.

Use Touch ID para acceder al llavero

Para usar Touch ID, primero debe agregar el marco LocalAuthentication a los archivos binarios de su proyecto. Puede hacer esto yendo a Proyecto> Construir fases> Vincular binarios con bibliotecas:

A continuación, importe el marco de LocalAuthentication en su controlador de vista de inicio de sesión.

import LocalAuthentication

Hemos llenado nuestro campo de texto UserName con el correo electrónico de la cuenta de usuario que guardamos anteriormente en UserDefaults.

A continuación, debemos verificar si la autenticación es posible en el dispositivo actual. Consulte el siguiente código:

Invocamos authenticateUserUsingTouchId () en viewDidAppear (). LAContext es una subclase de NSObject y representa nuestro contexto de autenticación actual. Ahora, si la autenticación es posible, valide la autenticidad de Touch ID llamando a EvaluationPolicy ()

context.evaluatePolicy () nos da la ventana emergente Touch ID con nuestro último nombre de usuario accedido, que le dimos como nuestro localizedReason en el método evaluaPolicy () .

Esto completa la Parte 1 del Paso 2: lograr que el usuario se autentique mediante Touch ID. El siguiente paso es usar Touch ID para acceder al llavero donde guardamos o recuperamos las credenciales de usuario para iniciar sesión.

Cuando el usuario proporciona un Touch ID válido, debemos cargar la contraseña del llavero y realizar nuestra llamada POST para iniciar sesión como usuario.

if authSuccessful { self.loadPasswordFromKeychainAndAuthenticateUser(lastAccessedUserName)}

¡Eso es! Puede actualizar su marco de autenticación para admitir varias cuentas. Después de verificar la autenticidad de Touch ID, muestre una ventana emergente y pida al usuario que seleccione la cuenta en la que desea iniciar sesión. Luego, recupere las credenciales del usuario correspondientes a esa cuenta del llavero. ¡Gracias por leer!