我正在研究苹果的Touch ID,更确切地说是本地认证器。 目前的文档非常匮乏,主要只有这个:
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
}
源自https://developer.apple.com/documentation/localauthentication
使用指纹进行身份验证的想法很不错。但是如果我知道密码,我可以在设备上添加指纹,并且很容易获取密码,例如坐在火车上旁边观察受害者输入密码。
我希望将指纹用作安全验证的一种方式,但同时希望能够检测到自上次请求指纹以来是否已添加了新的指纹。
Apple 在 AppStore 中就是这样做的。如果您想在 AppStore 上验证交易并在上次交易后添加了新的指纹,则 AppStore 会要求您提供 AppleId 密码。这是明智的行为,因为手机可能已被他人拿走,他们知道密码并添加了自己的指纹购买昂贵的物品。
我的问题:我可以检测到自上次使用本地认证器以来是否已添加新指纹吗?