Cómo: Solicitar la contraseña del dispositivo

Publicado en 23. marzo 2023 por Jan Bunk


Si buscas una solución finalizada que solicite una contraseña personalizada (no la contraseña del dispositivo) cuando un usuario abra la aplicación comprueba la función de protección por contraseña.

¿Quieres mejorar la seguridad de tu aplicación manteniendo una gran usabilidad? La autenticación local puede ser el camino a seguir. Esta documentación te mostrará cómo puedes pedir a los usuarios de tu aplicación que introduzcan el PIN, la huella dactilar o el Face ID de su dispositivo antes de acceder a partes de tu aplicación.

Activar la función

Activa el permiso de biometría en tu configuración de permisos. De lo contrario, esta función podría funcionar solo parcialmente (sin Face ID) o romperse de forma inesperada.

Uso de la función JavaScript

Quizá quieras consultar la función executeWhenAppReady() de nuestro script de ayuda de la aplicación. Garantiza que tu sitio web no intente interactuar con la aplicación antes de que esté lista o cuando tu sitio web se cargue utilizando un navegador normal (ReferenceError, function is not defined).

requestLocalAuthentication

Utiliza esta función para pedir al usuario su autenticación.


<script>
    try {
        // This message will be displayed to the user along with the prompt.
        let reason = "Please authenticate to access this part of the app";

        // returns a boolean. True if the authentication was successful, false if it failed (e.g. because the user
        // canceled it by pressing the back button).
        let authenticationResult = (await requestLocalAuthentication(reason))["result"];
    }
    catch (e) {
        switch(e) {
            case "NotAvailable":
                // The user has not configured an authentication method on the device.
                // Occurred on Android in this case, difference to PasscodeNotSet is not completely clear.
                break;
            case "PasscodeNotSet":
                // The user has not configured a passcode (iOS) or PIN/pattern/password (Android) on the device
                break;
            case "LockedOut":
                // Authentication is temporarily locked due to too many attempts.
                break;
            case "PermanentlyLockedOut":
                // Authentication is more persistently locked out than with "LockedOut".
                // Strong authentication like PIN/Pattern/Password is required to unlock.
                break;
        }
    }
</script>