iPhoneX使用FaceID认证

最近使用iPhoneX,发现新下载的App有些都会弹出FaceID认证的确认框,引起了作为一个开发者的好奇心—具体是怎么实现的呢?
官方文章中写到:
FaceID属于本地认证,是通过密码或生物识别技术请求用户的身份验证。
下面是官方代码:

@IBAction func btnClick(_ sender: Any) {
        let myContext = LAContext()
        let myLocalizedReasonString = "开启面容解锁,获取更多服务"
        
        var authError: NSError?
        if #available(iOS 8.0, macOS 10.12.1, *) {
            if myContext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &authError) {
                myContext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: myLocalizedReasonString) { success, evaluateError in
                    if success {
                        print("faceID is cool")
                        // User authenticated successfully, take appropriate action
                    } else {
                        // User did not authenticate successfully, look at error and take appropriate action
                    }
                }
            } else {
                // Could not evaluate policy; look at authError and present an appropriate message to user
            }
        } else {
            // Fallback on earlier versions
        }
    }

运行效果如下:


iPhoneX使用FaceID认证_第1张图片
IMG_0073 2.PNG

iPhoneX使用FaceID认证_第2张图片
IMG_0074.PNG

从提示中恍然大悟,FaceID是TouchID的替换,二者都属于本地认证,集成在LocalAuthentication模块中。其中认证策略枚举中的deviceOwnerAuthenticationWithBiometrics中的Biometrics,翻译成汉语是生物特征、生物信息的意思,也可以看出FaceID连同TouchID统一于人类体征,符合苹果用户体验至上的设计理念。
FaceID认证炫酷的同时,确确实实提供了方便。不要在纠结网络上对FaceID的吐槽,赶紧让你的App适配FaceID吧。因为有它,真的很好。

关注和鼓励都是对我的鼓励和支持~

你可能感兴趣的:(iPhoneX使用FaceID认证)