iOS Touch ID身份验证教程
苹果在iPhone 5s中引入了TouchID,用户无需输入密码就可以使用指纹来解锁iPhone中任何功能的设备。
在OS 7中,Apple并未向开发者发布FingerPrint API,但在OS 8中,Apple向我们提供了在您的iOS App中使用此功能的API。
在本教程中,我将解释如何在iOS应用程序中使用此功能。
- 本地认证框架
要添加TouchID功能,您必须在项目中添加LocalAuthentication Framework。
转到项目设置>常规,然后向下滚动到链接的框架和库部分。 单击+号并添加LocalAuthentication.framework 。
2.认证视图
对于TouchID,我们将创建一个登录按钮,并在按钮的onClick上提供TouchID身份验证屏幕,以供用户解锁功能。
@IBAction func clickLoginButton(_ sender:Any){self.authenticateUSerTouchID()}
3. TouchID验证的成功与失败
func authenticateUserTouchID(){让上下文:LAContext = LAContext()//声明一个NSError变量。letmyLocalizedReasonString =“访问您的Home ViewController需要验证。” var authError:NSError? ){context.evaluatePolicy(.deviceOwnerAuthentication,localizedReason:myLocalizedReasonString){成功,评估错误,如果成功// //如果触摸ID身份验证成功,请导航到下一个视图控制器 {
DispatchQueue.main.async {print(“系统验证成功”)let storyBoard:UIStoryboard = UIStoryboard(名称:“ Main”,bundle:nil)让homeVC = storyBoard.instantiateViewController(withIdentifier:“ HomeViewController”)为! //其他如果触摸ID身份验证失败,则打印错误MSG, {HomeViewControllerself.navigationController?.pushViewController(homeVC,animation:true)}} else //
如果让错误=错误{让消息= self.showErrorMessageForLAErrorCode(错误。代码)打印(消息)
}
}}}}
4.在Touch ID身份验证失败时打印错误消息
func showErrorMessageForLAErrorCode(errorCode:Int)->字符串{
var message =“”
开关errorCode {
案例LAError.AppCancel.rawValue:
message =“验证已被应用程序取消”
案例LAError.AuthenticationFailed.rawValue:
message =“用户无法提供有效的凭据”
案例LAError.InvalidContext.rawValue:
message =“上下文无效”
案例LAError.PasscodeNotSet.rawValue:
message =“未在设备上设置密码”
案例LAError.SystemCancel.rawValue:
message =“系统已取消身份验证”
案例LAError.TouchIDLockout.rawValue:
message =“失败尝试太多。”
案例LAError.TouchIDNotAvailable.rawValue:
message =“ TouchID在设备上不可用”
案例LAError.UserCancel.rawValue:
message =“用户确实取消了”
案例LAError.UserFallback.rawValue:
message =“用户选择使用后备”
默认:
message =“在LAError对象上找不到错误代码”
}
返回讯息
}
在您的应用程序中尝试“ TouchID身份验证集成” 。
您如何看待本教程? 希望听到您的反馈。