Anleitung: Nach dem Gerätepasswort fragen

Veröffentlicht am 23. März 2023 von Jan Bunk


Wenn du nach einer fertigen Lösung suchst, die ein benutzerdefiniertes Passwort (nicht das Gerätepasswort) anfordert, wenn ein Nutzer die App öffnet schau dir die die Passwortschutzfunktion an.

Willst du die Sicherheit deiner App verbessern und gleichzeitig die Benutzerfreundlichkeit beibehalten? Dann könnte die lokale Authentifizierung der richtige Weg sein. Diese Dokumentation zeigt dir, wie du die Nutzer deiner App auffordern kannst, ihre Geräte-PIN/Fingerabdruck/Gesichtserkennung einzugeben, bevor sie auf Teile deiner App zugreifen.

Aktivieren der Funktion

Aktiviere die biometrische Berechtigung in deinen Berechtigungseinstellungen. Andernfalls kann es sein, dass diese Funktion nur teilweise funktioniert (keine Face ID) oder auf unerwartete Weise ausfällt.

Verwendung der JavaScript-Funktion

Schau dir gerne auch die executeWhenAppReady() Funktion von unser App-Helfer-Skript. Es stellt sicher, dass deine Website nicht versucht, mit der App zu interagieren, bevor sie bereit ist oder wenn deine Website mit einem normalen Browser geladen wird (ReferenceError, Funktion ist nicht definiert).

requestLocalAuthentication

Benutze diese Funktion, um den Benutzer zur Authentifizierung aufzufordern.


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