Como fazer: Solicitar a senha do dispositivo

Publicado em 23. março 2023 por Jan Bunk


Se você estiver procurando uma solução pronta 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.

Você quer melhorar a segurança do seu aplicativo enquanto ainda mantém uma grande usabilidade? A autenticação local pode ser o caminho a seguir. Esta documentação lhe mostrará como você pode solicitar aos usuários de seu aplicativo que digitem o PIN do dispositivo, a impressão digital e a identificação da face antes de acessar partes do seu 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 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, function is not defined).

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>