如何 link Touch ID 与登录凭据?

How to link Touch ID with login credentials?

我能够成功验证用户 Touch ID。但是,一旦touch ID身份验证成功,检索用户登录名和密码以执行登录的最安全方法是什么。

对于iTu​​nes connect app,touch ID登录成功后,好像会在本地取回密码,填入密码UITextField。我猜它正在使用钥匙串。

但是,将用户凭据存储在 iPhone 本身上是否安全?还有其他方法吗?

您想将登录信息存储在钥匙串中,但您需要确保可访问性参数设置为 kSecAttrAccessibleWhenUnlocked 或 kSecAttrAccessibleWhenUnlockedThisDeviceOnly(kSecAttrAccessibleWhenUnlockedThisDeviceOnly 更安全一些,因为密码不会离开设备,比如当设备已备份到您的笔记本电脑。)

NSMutableDictionary *query = [NSMutableDictionary dictionary];
[query setObject:(id)kSecClassGenericPassword forKey:(id)kSecClass];
[query setObject:account forKey:(id)kSecAttrAccount];
[query setObject:(id)kSecAttrAccessibleWhenUnlocked forKey:(id)kSecAttrAccessible];
[query setObject:[inputString dataUsingEncoding:NSUTF8StringEncoding] forKey:(id)kSecValueData];

OSStatus error = SecItemAdd((CFDictionaryRef)query, NULL);

(代码来自http://software-security.sans.org/blog/2011/01/05/using-keychain-to-store-passwords-ios-iphone-ipad/