können Sie kSecAccessControlTouchIDCurrentSet
verwenden E-Mail in Schlüsselanhänger der Registrierung zu dem Zeitpunkt zu speichern. Damit wird der Artikel, den Sie in den Schlüsselbund speichern, eine Kombination aus Current TouchID + Email
sein. Zum Zeitpunkt der Anmeldung können Sie E-Mail von Keychain mit touchId abrufen und mit der eingegebenen E-Mail vergleichen.
Um E-Mail in Schlüsselbund zu speichern, verwenden Sie folgenden Code: (funktioniert auf iOS 9 und above-- Arbeit nicht auf iOS 8)
-(void)saveToKeyChain:(NSString*)email{
CFErrorRef error = NULL;
SecAccessControlRef scaObject = SecAccessControlCreateWithFlags(kCFAllocatorDefault,kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, kSecAccessControlTouchIDCurrentSet, &error);
NSDictionary *attributes = @{
(__bridge id)kSecClass:(__bridge id)kSecClassGenericPassword,
(__bridge id)kSecAttrService :@"ToucIdWithEmailExample",
(__bridge id)kSecValueData :[email dataUsingEncoding:NSUTF8StringEncoding],
(__bridge id)kSecUseNoAuthenticationUI :@YES,
(__bridge id)kSecAttrAccessControl : (__bridge_transfer id)scaObject
};
OSStatus initialWriteStatus = SecItemAdd((__bridge CFDictionaryRef)attributes, nil);
}
kSecAccessControlTouchIDCurrentSet in above will take store Email with current authenticated touch.
keychain Daten retrive, können Sie folgendes:
-(void)retriveKeyChainData{
NSDictionary *querryAttributes = @{
(__bridge id)kSecClass:(__bridge id)kSecClassGenericPassword,
(__bridge id)kSecAttrService :@"ToucIdWithEmailExample",
(__bridge id)kSecReturnData : @YES,
(__bridge id)kSecUseOperationPrompt : @"Authenticate"
}.mutableCopy;
CFTypeRef dataTypeRef = NULL;
OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)querryAttributes, &dataTypeRef);
if(status == errSecSuccess)
{
NSData *data = (__bridge NSData*)(dataTypeRef);
}
}
Diese Funktion ruft die E-Mail-ID ab, die Sie bei der Registrierung gespeichert haben. Sie können es mit der eingegebenen E-Mail vergleichen und bestätigen.
können Sie durch diese tutorial gehen - wenn Sie es im Detail verstehen wollen.
Sie möchten die Touch-ID-Verbindung mit der E-Mail verknüpfen (wie die Touch-ID war das Passwort) und nicht mit (E-Mail + Passwort) + Touch-ID einloggen?Muss sicher sein – Makaille
ja touchId ist mein Passwort – CodeChanger
Es ist nicht möglich, dass Touch-ID ist nur Rückkehr Erfolg, dass ja oder nein. Sie können es also nicht mit E-Mail binden. @CodeChanger – KAR