Hur man: Begär enhetens lösenord

Postat den 23. mars 2023 av Jan Bunk


Om du letar efter en färdig lösning som begär ett anpassat lösenord (inte enhetslösenordet) när en användare öppnar appen kolla in lösenordsskyddsfunktionen.

Vill du förbättra din apps säkerhet samtidigt som du behåller en bra användarupplevelse? Lokal autentisering kan vara vägen att gå. Denna dokumentation visar hur du kan uppmana användarna av din app att ange sin enhetens PIN/Fingeravtryck/Face ID innan de får tillgång till delar av din app.

Aktivera funktionen

Aktivera biometriska tillstånd i dina tillståndsinställningar. Annars kan denna funktion bara fungera delvis (ingen Face ID) eller brytas på oväntade sätt.

Använda JavaScript-funktionen

Du kanske vill kolla in executeWhenAppReady()-funktionen i vårt hjälparskript för appen. Det säkerställer att din webbplats inte försöker interagera med appen innan den är redo eller när din webbplats laddas med en vanlig webbläsare (ReferenceError, funktion är inte definierad).

requestLocalAuthentication

Använd denna funktion för att uppmana användaren till autentisering.


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