Use TouchID FaceID in iOS11

LocalAuthentication

Request authentication from users through passphrases or biometrics(通过密码或生物识别认证用户身份).


概述

生物识别是使用TouchID和FaceID来验证用户身份。生物识别支持iPhone5s以后机型,支持iOS8.0+。

引用:官方文档


Classes

1.LAPolicy Enum

LAPolicy是生物识别的两种验证方式

case deviceOwnerAuthentication 如果生物识别验证失败可使用密码验证用户 iOS9.0+
case deviceOwnerAuthenticationWithBiometrics 只通过生物识别验证用户 iOS 8.0+

2.LAError Struct

LAError 验证的错误对象,用于对应错误

错误码枚举

public enum Code : Int {
        case authenticationFailed               //  TouchID或者FaceID身份验证失败
        case userCancel                         //  用户点击了取消按钮
        case userFallback                       //  用户点击了输入密码
        case systemCancel                       //  被系统取消,另一个应用进去前台
        case passcodeNotSet                     //  没设密码
        case appCancel                          //  被程序取消
        case invalidContext                     //  Context对象无效了

        case touchIDNotAvailable                //  设备不支持TouchID  iOS8引入 iOS11弃用
        case touchIDNotEnrolled                 //  用户没设置TouchID  iOS8引入  iOS11弃用
        case touchIDLockout                     //  TouchID错误次数太多被锁住  iOS8引入  iOS11弃用
        case notInteractive                     //  UI无法交互

        @available(iOS 11.0, *)
        public static var biometryNotAvailable  //  设备不支持生物识别 iOS11引入
        @available(iOS 11.0, *)
        public static var biometryNotEnrolled   //  用户没设置生物识别 iOS11引入
        @available(iOS 11.0, *)
        public static var biometryLockout       //  生物识别错误次数太多被锁住  iOS11引入
    }

3.LAContext Class

主要通过LAContext类的方法进行身份验证。

判断是否可以进行用户身份验证

func canEvaluatePolicy(_ policy: LAPolicy, error: NSErrorPointer) -> Bool
传入LAPolicy对象设置验证方式,我们通过函数返回的Bool来判断是否可以进行验证,通过NSError来判断错误原因。

用户身份验证

func evaluatePolicy(_ policy: LAPolicy, localizedReason: String, reply: @escaping (Bool, Error?) -> Void)
传入LAPolicy对象要和canEvaluatePolicy传入的保持一致,localizedReason告诉用户验证是为了什么,闭包返回了Bool来判断是否通过了验证,Error为LAError用于判断错误原因。

其他API暂未研究后续补齐


注意

适配iOS11:iPhoneX有FaceID我们需要在Info.plist加入NSFaceIDUsageDescription键值,不加可能导致程序Crash。

    <key>NSFaceIDUsageDescription</key>
    <string>面容ID用于登录</string>

引用:官方文档CocoaKeys

举例

BioMetricAuthenticatorExample

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • error code(错误代码)=0是操作成功完成。error code(错误代码)=1是功能错误。error c...
    Heikki_阅读 8,742评论 1 9
  • error code(错误代码)=2000是无效的像素格式。error code(错误代码)=2001是指定的驱动...
    Heikki_阅读 6,208评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,155评论 19 139
  • 指纹识别: iPhone5S开始,推出指纹识别 iOS8.0之后苹果允许第三方 App 使用 Touch ID进行...
    a437e8f87a81阅读 5,215评论 0 17
  • 经营一个社群,首先要用心,要花费时间和经历。要有共同目标,是为了什么建立的社群?有核心价值。大家能相互帮助,使得社...
    微冷_阅读 832评论 0 0

友情链接更多精彩内容