锁定了多少时间Touch ID? "生物测量被锁定。"

时间:2017-01-30 10:59:34

标签: ios objective-c fingerprint touch-id

我尝试实施Touch ID登录,但是当用户失败超过最大尝试次数时,我收到此错误"错误域= com.apple.LocalAuthentication Code = -8&#34 ;生物测量被锁定。" UserInfo = {NSLocalizedDescription =生物测量被锁定。}"

我想知道:

  • 多长时间,我在哪里检查它是锁定触摸ID?
  • 可以在不显示密码的情况下强行解锁吗?
  • 如果用户使用密码尝试失败,锁定触摸ID的时间是多少,或者我该如何强行解锁呢?

谢谢!

2 个答案:

答案 0 :(得分:7)

您可以通过使用密码验证用户来解锁生物测定。 只需将此功能粘贴到项目中,然后在使用Touch ID对用户进行身份验证之前调用此函数。

如果返回true,则运行Touch ID身份验证,如果由于生物测定锁定而失败,则会要求用户输入iPhone密码以解锁生物测定。这将在应用程序中发生。

func isBiometryReady() -> Bool
{
        let context : LAContext = LAContext();
                var error : NSError?

                context.localizedFallbackTitle = ""
                context.localizedCancelTitle = "Enter Using Passcode"

                if (context.canEvaluatePolicy(LAPolicy.deviceOwnerAuthenticationWithBiometrics, error: &error))
                {
                        return true
                }

                if error?.code == -8
                {
                    let reason:String = "TouchID has been locked out due to few fail attemp. Enter iPhone passcode to enable touchID.";
                    context.evaluatePolicy(LAPolicy.deviceOwnerAuthentication,
                                           localizedReason: reason,
                                           reply: { (success, error) in

                                            return false

                    })

                    return true


                }

        return false
    }

答案 1 :(得分:6)

触摸ID,由于尝试不正确而被锁定,将被锁定,直到用户输入密码为止。所以没有固定的时间。解锁的唯一方法是从此时开始的密码,并且由于显而易见的原因,无法强制解锁。