Hoe werkt het: vragen om het wachtwoord van het apparaat

Geplaatst op 23. maart 2023 door Jan Bunk


Als je op zoek bent naar een kant-en-klare oplossing die om een aangepast wachtwoord vraagt (niet het wachtwoord van het apparaat) wanneer een gebruiker de app opent, bekijk dan de wachtwoordbeveiligingsfunctie.

Wil je de beveiliging van je app verbeteren en toch een goede bruikbaarheid behouden? Dan is lokale authenticatie misschien een goede optie. We leggen je uit hoe je de gebruikers van je app kunt vragen om hun pincode/vingerafdruk/gezichtsidentificatie in te voeren voordat ze toegang krijgen tot delen van je app.

De functie inschakelen

Schakel de toestemming voor biometrie in je toestemmingsinstellingen in. Anders kan deze functie slechts gedeeltelijk werken (geen Face-ID) of op onverwachte manieren niet meer werken.

De JavaScript-functie gebruiken

Je zou eens kunnen kijken naar de executeWhenAppReady() functie van ons app-helper script. Het zorgt ervoor dat je website niet probeert te communiceren met de app voordat deze klaar is of wanneer je website wordt geladen met een gewone browser (ReferenceError, functie is niet gedefinieerd).

requestLocalAuthentication

Gebruik deze functie om de gebruiker om authenticatie te vragen.


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