如果使用密码,则获取Touch ID通知

时间:2015-04-19 10:45:05

标签: ios touch-id

我在我的应用中使用Touch ID。

  • 如果Touch ID指纹扫描连续三次失败,则会出现Application retry limit exceeded.错误。
  • 如果Touch ID指纹扫描再次失败两次,则会出现Biometry is locked out.错误。

从生物测定中锁定后,您需要输入密码。奇怪的是,如果您的密码输入正确,那么会导致success回调中的evaluatePolicy。相反,系统会提示您重试生物测量。

如何在锁定生物统计数据后收到密码正确输入的通知?

1 个答案:

答案 0 :(得分:2)

习惯我提到的一个非常好的方法是使用Apple提供的这个项目:Using Touch ID with Keychain and LocalAuthentication

有两种方法可以提示您的用户进行Touch ID身份验证;各有利弊。

  1. -[LAContext evaluatePolicy:localizedReason:reply:]
  2. 这允许您提示系统仅向用户询问其Touch ID身份验证(如果设置正确)。如果用户因此处或其他地方的重复故障而被锁定,则会要求他们输入密码作为再次解锁Touch ID的方法(据我所知)。由于调用evaluatePolicy:localizedReason:reply:的初始目标是让用户使用Touch ID进行身份验证,因此仍然会要求他们执行此操作。

    这种方法的好处是,您从通话中获得的错误更能描述发生的事情(用户取消与失败)。

    1. 将某些内容存储在由kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
    2. 保护的钥匙串中

      此选项可能会为您提供您感兴趣的体验。使用此属性在钥匙串中存储内容后,尝试从钥匙串复制它将显示更熟悉的Touch ID提示,允许用户输入密码如果需要(虽然我已经注意到在iOS 8.3 Beta中,提示没有在第一次尝试时显示"输入密码"选项。

      这种方法的缺点是,无论用户如何结束流程(以某种方式失败或只是取消取消),您总会收到失败的错误。