So verwenden Sie Touch ID für eine schnellere und einfachere Anmeldung bei Ihrer App

Es ist eine häufige Beobachtung, dass Benutzer ein wenig auf Ihrem Anmeldebildschirm abfallen. So gehe ich mit meiner Facebook-Sucht um. In diesem Tutorial erfahren Sie, wie Sie Touch ID für eine schnellere und einfachere Anmeldung verwenden. Ich werde Sie bald durch die Schritte führen, lassen Sie mich Sie ein wenig unterrichten.

Die meisten Apps verwenden Touch ID als Authentifizierung zweiten Grades. In diesem Tutorial geht es NICHT darum, eine Authentifizierung zweiten Grades bereitzustellen (obwohl Sie dies auch tun können, wenn Sie diesen Artikel lesen). Es geht darum, mit der Touch-ID diesen Server anzurufen, um den Benutzer anzumelden.

Wie können Sie nun die Anmeldeinformationen des Benutzers von seinem Fingerabdruck abrufen, um den Server aufzurufen? Hier kommt der Schlüsselbunddienst ins Spiel. Wenn sich der Benutzer zum ersten Mal bei Ihrer App anmeldet oder anmeldet, speichern Sie die Anmeldeinformationen im Schlüsselbund Ihrer App. Wenn sich der Benutzer das nächste Mal abmeldet und den Anmeldebildschirm erneut aufruft, wird ein Popup-Fenster eingeblendet, in dem er aufgefordert wird, sich mit der Touch-ID anzumelden. Wenn der Benutzer eine gültige Touch-ID angibt, rufen Sie die zuvor im Schlüsselbund gespeicherten Benutzeranmeldeinformationen ab, tätigen Sie Ihren API-Aufruf und Boom! .

Es sind also zwei Schritte erforderlich:

  • Zunächst müssen Sie die Anmeldeinformationen des Benutzers im Schlüsselbund speichern. Sie können dies tun, wenn sich der Benutzer anmeldet oder wenn er sich zum ersten Mal bei Ihrer App anmeldet.
  • Verwenden Sie anschließend die Touch ID, um den Benutzer zu überprüfen und seine Anmeldeinformationen vom Schlüsselbunddienst abzurufen.

Ich verwende KeychainPasswordItem, einen netten Wrapper über Keychain, der hier auf developer.apple.com verfügbar ist. Sie haben ein sehr gutes, detailliertes Beispiel für die Verwendung dieses generischen Schlüsselbunds. Geh und sieh nach.

Verwenden Sie im ersten Schritt die unten stehende Anrufmethode mit der E-Mail-Adresse des Benutzers als Konto und Kennwort, wenn sich der Benutzer anmeldet und anmeldet.

Wir speichern die E-Mail-Adresse des Benutzers unter UserDefaults, um sie später zu verwenden. Es ist besser, wenn Sie ein Popup-Fenster flashen und den Benutzer um Erlaubnis bitten, diese Funktion zu verwenden. Ich überspringe diesen Teil für dieses Tutorial.

Verwenden Sie Touch ID, um auf den Schlüsselbund zuzugreifen

Um Touch ID verwenden zu können, müssen Sie zuerst das LocalAuthentication-Framework zu Ihren Projektbinärdateien hinzufügen. Gehen Sie dazu zu Projekt> Phasen erstellen> Binär mit Bibliotheken verknüpfen:

Importieren Sie anschließend das LocalAuthentication-Framework in Ihren Anmeldeansichtscontroller.

importieren Sie LocalAuthentication

Wir haben unser Textfeld "Benutzername" mit der E-Mail-Adresse des Benutzerkontos gefüllt, die wir zuvor unter "Benutzerdefinierte Einstellungen" gespeichert haben.

Als nächstes müssen wir prüfen, ob auf dem aktuellen Gerät eine Authentifizierung möglich ist. Überprüfen Sie den folgenden Code:

Wir rufen authenticateUserUsingTouchId () in viewDidAppear () auf. LAContext ist eine Unterklasse von NSObject und repräsentiert unseren aktuellen Authentifizierungskontext. Wenn nun eine Authentifizierung möglich ist, überprüfen Sie die Authentizität von Touch ID durch Aufrufen von evaluationPolicy ().

context.evaluatePolicy () gibt uns das Popup "Touch ID" mit unserem zuletzt aufgerufenen Benutzernamen, den wir als localizedReason in der valuPolicy () -Methode angegeben haben.

Damit ist Teil 1 von Schritt 2 abgeschlossen: Der Benutzer muss sich mit Touch ID authentifizieren. Als nächstes verwenden wir Touch ID, um auf den Schlüsselbund zuzugreifen, in dem wir Benutzeranmeldeinformationen für die Anmeldung speichern oder abrufen.

Wenn der Benutzer eine gültige Touch-ID angibt, müssen wir das Kennwort aus dem Schlüsselbund laden und unseren POST-Anruf tätigen, um den Benutzer anzumelden.

if authSuccessful {self.loadPasswordFromKeychainAndAuthenticateUser (lastAccessedUserName)
}

Das ist es! Sie können Ihr Authentifizierungsframework so aktualisieren, dass es mehrere Konten unterstützt. Nachdem Sie die Authentizität der Touch ID überprüft haben, blinken Sie in einem Popup-Fenster und fordern Sie den Benutzer auf, das Konto auszuwählen, für das er sich anmelden möchte. Rufen Sie dann die diesem Konto entsprechenden Anmeldeinformationen des Benutzers aus dem Schlüsselbund ab. Danke fürs Lesen!