Så här gör du: Fråga efter 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 funktionen för lösenordsskydd.

Vill du förbättra appens säkerhet samtidigt som du behåller den goda användbarheten? Lokal autentisering kan vara rätt väg att gå. Den här dokumentationen visar hur du kan uppmana användarna av din app att ange enhetens PIN-kod/fingeravtryck/ansiktsidentitet innan de får tillgång till delar av din app.

Aktivering av funktionen

Aktivera biometribehörigheten i behörighetsinställningarna. Annars kan den här funktionen bara fungera delvis (inget Face ID) eller gå sönder 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 klar eller när din webbplats laddas med en vanlig webbläsare (ReferenceError, function is not defined).

requestLocalAuthentication

Använd den här funktionen för att be användaren om 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>