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)
    }

最终效果
图片描述
图片描述
图片描述


Hydrogen
2.5k 声望73 粉丝

Write code for fun.