iOS8 Touch ID 失败时如何回退到密码验证?
How to fallback to password authentication when Touch ID fails on iOS 8?
我正在尝试在我的应用程序上实施 Touch ID 身份验证,如果失败(或不可用),我想回退到密码。
这是我的代码:
LAContext *ctx = [[LAContext alloc] init];
[ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"Authenticate to access." reply:^(BOOL success, NSError *error) {
if(success){
[...]
}else if(error.code != LAErrorUserFallback){
[...] //error handler
}
}];
当我使用 Touch ID 进行身份验证时,会调用成功。当我在 3 次触摸后无法进行身份验证时,将调用错误处理程序。到这里没问题。但是当我点击输入密码时,它应该显示输入密码屏幕,但没有任何反应。如何显示输入密码屏幕?
您应该首先通过调用 LAContext's [canEvaluatePolicy:error:]
方法检查 TouchID 是否可用,如果 TouchID 不可用,该方法将 return NO
。
并且 LAErrorUserFallback 适用于 您的 应用程序自己的密码(身份验证)方案,而不是设备。 .
你应该使用 LAPolicyDeviceOwnerAuthentication 而不是 LAPolicyDeviceOwnerAuthenticationWithBiometrics LAContext`s Method
evaluatePolicy:
localizedReason:kReasonTitle:
reply
和
canEvaluatePolicy:
error:
LAPolicyDeviceOwnerAuthentication:
如果 Touch ID 可用、已注册且未锁定,则首先要求用户输入,否则要求他们输入设备密码这将显示输入密码屏幕。
使用 LAPolicyDeviceOwnerAuthentication
而不是 LAPolicyDeviceOwnerAuthenticationWithBiometrics
。
它将首先提示输入 Touch ID(如果可用)并为设备注册。如果您错误地使用 Touch ID 3 次,则会显示 "Enter passcode" 按钮。点击该按钮后,将显示设备密码屏幕。
我正在尝试在我的应用程序上实施 Touch ID 身份验证,如果失败(或不可用),我想回退到密码。
这是我的代码:
LAContext *ctx = [[LAContext alloc] init];
[ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"Authenticate to access." reply:^(BOOL success, NSError *error) {
if(success){
[...]
}else if(error.code != LAErrorUserFallback){
[...] //error handler
}
}];
当我使用 Touch ID 进行身份验证时,会调用成功。当我在 3 次触摸后无法进行身份验证时,将调用错误处理程序。到这里没问题。但是当我点击输入密码时,它应该显示输入密码屏幕,但没有任何反应。如何显示输入密码屏幕?
您应该首先通过调用 LAContext's [canEvaluatePolicy:error:]
方法检查 TouchID 是否可用,如果 TouchID 不可用,该方法将 return NO
。
并且 LAErrorUserFallback 适用于 您的 应用程序自己的密码(身份验证)方案,而不是设备。
你应该使用 LAPolicyDeviceOwnerAuthentication 而不是 LAPolicyDeviceOwnerAuthenticationWithBiometrics LAContext`s Method
evaluatePolicy: localizedReason:kReasonTitle: reply
和
canEvaluatePolicy: error:
LAPolicyDeviceOwnerAuthentication:
如果 Touch ID 可用、已注册且未锁定,则首先要求用户输入,否则要求他们输入设备密码这将显示输入密码屏幕。
使用 LAPolicyDeviceOwnerAuthentication
而不是 LAPolicyDeviceOwnerAuthenticationWithBiometrics
。
它将首先提示输入 Touch ID(如果可用)并为设备注册。如果您错误地使用 Touch ID 3 次,则会显示 "Enter passcode" 按钮。点击该按钮后,将显示设备密码屏幕。