ios8 TouchID检测如果指纹被添加

我深入苹果的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/library/prerelease/ios/documentation/LocalAuthentication/Reference/LocalAuthentication_Framework/index.html

使用您的指纹进行认证的想法是不错的.但是如果我知道密码,我可以在设备中添加指纹.它很容易得到密码,就像你坐在列车旁的受害者旁边,看他/她输入密码.

我想使用指纹作为安全认证的一种方法,但是想要能够检测自从上次请求指纹以来是否添加了新的指纹.

苹果正在为AppStore做这件事.如果您想在AppStore中验证一笔交易,并且自上次交易以来添加了新的指纹,AppStore会请求您的AppleId-Password.这是一个理智的行为,因为手机可能已经被别人知道密码,并添加了自己的指纹来购买昂贵的东西.

我的问题:自从上次使用本地身份验证器以来,是否可以检测到是否添加了新的指纹?

解决方法

简而言之;没有.

多一点细节; LocalAuthentication框架是一个严密防护的黑匣子.你从中得到的信息非常有限.你与它的互动是这样的:

>询问它是否能够针对某种类型的策略进行身份验证(写入时只有1个可用) – Biometrics(Touch ID))
>如果可以的话,请问它实际上是这样做的
>系统接管实际认证
>它可以让你知道身份验证是否成功(如果没有,它告诉你为什么)

您没有实际身份验证过程的概念(例如使用手指).这当然是设计的.苹果不想要也不需要给你访问这些信息.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...