Hur du: Begär enhetens lösenord

Uppdaterad den 21. mars 2026 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 bra användarvänlighet? Lokal autentisering kan vara vägen att gå. Denna dokumentation visar hur du kan uppmana användarna av din app att ange sin enhets-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, funktionen är inte definierad).

requestLocalAuthentication

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

Funktionen returnerar ett objekt med ett booleskt resultat vid lyckat utfall. Om autentiseringsprompten avbryts eller enheten inte kan fortsätta kastar den i stället en sträng med en felkod.


<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 the authentication challenge failed.
        // If the prompt is canceled or the device cannot continue, an error string is thrown instead.
        let authenticationResult = (await requestLocalAuthentication(reason))["result"];
    }
    catch (e) {
        switch(e) {
            case "userCanceled":
                // The user canceled the prompt and didn't authenticate.
                break;
            case "authInProgress":
                // Another authentication request is already running.
                break;
            case "noCredentialsSet":
                // No biometrics, PIN, password, or pattern is configured.
                break;
            case "systemCanceled":
                // The system interrupted the authentication attempt, for example when the app gets closed.
                break;

            // All the errors below should be very rare in practice:

            case "timeout":
                // The authentication prompt timed out.
                break;
            case "uiUnavailable":
                // The system cannot show the authentication prompt right now.
                break;
            case "deviceError":
                // A device-level error prevented authentication.
                break;
            case "unknownError":
                // An unknown error occurred.
                break;
            default:
                // Any other error
                break;
        }
    }
</script>
    
Migrering för appar som senast uppdaterades före den 21 mars 2026

Äldre appversioner kan fortfarande hantera felsträngar som NotAvailable, PasscodeNotSet, LockedOut och PermanentlyLockedOut.

  • NotAvailable är inte längre ett specifikt fall. Det blir oftast noCredentialsSet, uiUnavailable eller unknownError.
  • PasscodeNotSet är nu noCredentialsSet.
  • LockedOut och PermanentlyLockedOut verkar inte inträffa längre.
  • UserCancelled är nu userCanceled.
  • auth_in_progress är nu authInProgress.
  • no_activity och no_fragment_activity är nu uiUnavailable.