TouchID功能是从iPhone5S时代引入的安全功能,通过这个功能用户可以省略众多输入密码的繁琐步骤,并且获得更好的安全性,下面我们来一起学习一下如何进行TouchID本地验证.
框架导入
首先创建好项目,选择Build Phases。在Link Binary with Libraries中将LocalAuthentication的framework添加进项目
在代码中import引入的framework。在viewController中import LocalAuthentication指纹验证
接下来在StoryBoard中创建一个按钮,并且拉一个IBAction,这里我们命名为check
在这个方法中我们进行本地验证的具体步骤//本地验证上下文对象 let context = LAContext() //验证错误 var authError : NSError? //在验证界面显示的文字 let errorReason = "使用TouchID验证"
接下来就开始实现指纹验证的主要功能
若可以进行指纹验证if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &authError){ //若可以进行指纹验证 //通过设备自带的生物识别装置(TouchID)进行本地验证 context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: errorReason, reply: {(success, error) in //验证结束的闭包,第一个参数为结果,第二个参数为错误信息 if success { print("验证成功") } else{ print("验证失败") } }) }
若不能进行指纹验证
//若不能进行指纹验证,通过alertController提示验证失败 else{ let alert = UIAlertAction(title: "无法验证", style: UIAlertActionStyle.Default, handler: { _ in self.dismissViewControllerAnimated(true, completion: nil) }) let alertController = UIAlertController(title: "验证结果", message: nil, preferredStyle: UIAlertControllerStyle.Alert) alertController.addAction(alert) //显示alertController self.presentViewController(alertController, animated: true, completion: nil) }
最终效果