Como solicitar a senha do dispositivo?

Publicado em 23. março 2023 por Jan Bunk


Se você estiver procurando uma solução final que solicite uma senha personalizada (não a senha do dispositivo) quando um usuário abrir o aplicativo verifique o recurso de proteção por senha.

Deseja melhorar a segurança do seu aplicativo e, ao mesmo tempo, manter uma excelente usabilidade? A autenticação local pode ser o caminho a seguir. Esta documentação mostrará como você pode solicitar que os usuários do seu aplicativo digitem o PIN do dispositivo, a impressão digital ou o ID facial antes de acessar partes do aplicativo.

Habilitando o recurso

Habilite a permissão biométrica em suas configurações de permissão. Caso contrário, este recurso pode funcionar apenas parcialmente (sem identificação facial) ou quebrar de maneiras inesperadas.

Usando a função do JavaScript

Recomendamos que verifique a função executeWhenAppReady() do nosso script auxiliar de aplicação. Ele garante que seu site não tente interagir com o aplicativo antes que ele esteja pronto ou quando o site for carregado usando um navegador comum (ReferenceError, a função não está definida).

requestLocalAuthentication

Use esta função para solicitar a autenticação do usuário.


<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>