我能够成功验证用户 Touch ID。但是,一旦 Touch ID 身份验证成功,检索用户登录名和密码以执行登录的最安全方法是什么。
对于 iTunes connect 应用程序,一旦 touch ID 登录成功,它似乎会在本地检索密码并将其填入密码 UITextField。我猜它正在使用钥匙串(keychain)。
但是,将用户凭据存储在 iPhone 本身上是否安全?还有其他方法吗?
最佳答案
您想将登录信息存储在钥匙串(keychain)中,但您需要确保将可访问性参数设置为 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/
关于ios - 如何将 Touch ID 与登录凭据相关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28937726/