ios8 TouchID-Erkennung, wenn Fingerabdruck Hinzugefügt wurde
Im Graben in Apple ' s Touch ID, genauer gesagt der Lokalen Authenticator.
Die Dokumentation der ist jetzt ziemlich spärlich.
Seine vor allem eines:
LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
NSString *myLocalizedReasonString = <#String explaining why app needs authentication#>;
if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
[myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:myLocalizedReasonString
reply:^(BOOL success, NSError *error) {
if (success) {
//User authenticated successfully, take appropriate action
} else {
//User did not authenticate successfully, look at error and take appropriate action
}
}];
} else {
//Could not evaluate policy; look at authError and present an appropriate message to user
}
als entnommen https://developer.apple.com/documentation/localauthentication
Die Idee, mit Hilfe Ihres Fingerabdrucks für die Authentifizierung ist schön. Aber ich kann hinzufügen Fingerabdrücke im Gerät, wenn ich weiß, den passcode ein. Und es ist sehr einfach zu bekommen, den passcode ein, wie Sie sitzen im Zug neben ur-Opfer und beobachten Sie ihn/Sie, geben Sie den passcode ein.
Ich will den Fingerabdruck als eine Möglichkeit der sicheren Authentifizierung, wollen aber in der Lage sein zu erkennen, wenn neue Fingerabdrücke Hinzugefügt wurden, seit ich das Letzte mal gebeten den Fingerabdruck.
Apple macht dies für den AppStore. Wenn Sie authentifizieren möchten, eine Transaktion in den AppStore und habe soeben einen neuen Fingerabdruck, die seit der letzten Transaktion, die AppStore-Anfragen Ihre AppleId-Passwort. Dies ist sane Verhalten, da das Telefon möglicherweise getroffen worden von jemand anderes, wer kennt den passcode ein, und fügte seinem eigenen Fingerabdruck zu kaufen, etwas teuer.
Meine Frage: Kann ich erkennen, ob ein neuer Fingerabdruck Hinzugefügt wurde, da das Letzte mal, dass ich auf Lokale Authenticator?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kurz; Nein.
In ein bisschen mehr detail; die
LocalAuthentication
framework ist eine eng bewacht black box. Die Informationen, die Sie erhalten zurück von ihm ist sehr begrenzt. Ihre Interaktion mit es geht so etwas wie dieses:Haben Sie kein Konzept für die eigentliche Authentifizierung-Prozess (welcher finger verwendet wurde, zum Beispiel). Dies ist natürlich durch das design. Apple nicht wollen, noch brauchen, um Ihnen den Zugang zu solchen Informationen.
Dies ist nun möglich in iOS9. Die Eigenschaft evaluatedPolicyDomainState Hinzugefügt wurde LAContext.
Wenn der Fingerabdruck-Datenbank geändert wird (Finger waren Hinzugefügt oder entfernt), werden die Daten zurückgegeben, die von evaluatedPolicyDomainState ändern wird. Die Art der änderungen bestimmt werden können, sondern durch Vergleich der Daten von evaluatedPolicyDomainState nach verschiedenen evaluatePolicy Anrufe können Sie erkennen, dass die Satz Fingerabdrücke, der geändert wurde.
Beachten Sie, dass diese Eigenschaft nur, wenn evaluatePolicy genannt wird und eine erfolgreiche Touch-ID-Authentifizierung durchgeführt wurde, oder wenn canEvaluatePolicy gelingt, für einen biometrischen Richtlinien.
Als Keith genannt, in iOS 9 ist es möglich. Sie sollten es so machen.
Jedes mal, wenn Sie hinzufügen oder löschen eines Fingerabdrucks die domain Status ändert. Müssen Sie rufen Sie
canEvaluatePolicy
fürevaluatedPolicyDomainState
aktualisiert werden.Dies ist der code in objective-c, um zu überprüfen, ob ein Fingerabdruck Hinzugefügt oder entfernt wurde:
Ich würde empfehlen, zum speichern der evaluatedPolicyDomainState Wert in Schlüsselbund anstatt es zu speichern in NSUserDefault.
Können Sie konvertieren die Daten Wert evaluatedPolicyDomainState in Zeichenfolge, die ist eine 44-Zeichenfolge. Unten ist der code zum konvertieren der evaluatedPolicyDomainState Daten-Wert in die string -
HTML:
Nun, wenn der Geräte-Besitzer hat jede änderung in Touch ID wie das hinzufügen eines neuen finger-Id; so wird mit diesen Daten wird der Wert geändert werden, und Sie kann die notwendigen Maßnahmen ergreifen, um zu behandeln, die ändern sich je nach Projekt braucht.
Ich würde gerne etwas hinzufügen,
Ist es besser, zu speichern, Benutzer, Passwort, etc in Ihrem Schlüsselbund.
Ich bin mit https://github.com/reidmain/FDKeychain