iOS 指纹认证登陆开发(TouchID)

设计思路

TouchID 关联账号

用户登陆成功 -> 开启TouchID登陆 -> TouchID验证 -> 记录用户信息(验证通过) -> 关联完成

TouchID 登陆

用户使用TouchID登陆 -> TouchID验证 -> 从本地读取用户信息(验证通过) -> 与服务器通讯 -> 完成登陆

注意事项

TouchID只提供验证结果,不提供关联。(即不会返回一个标识让你去关联账号,如何关联需要自己设计)

TouchID 相关接口

来自 LocalAuthentication 框架中 LAContext 类

判断设备是否支持TouchID, 用以下接口

open func canEvaluatePolicy(_ policy: LAPolicy, error: NSErrorPointer) -> Bool

示例代码

    let context = LAContext()
    var error: NSError?

    let isAvailable = context!.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error)

    if  isAvailable {

        print("Touch ID is available")
    }else {

        print("Touch ID is not available:\(error!)")
    }

进行指纹验证用下面接口

   open func evaluatePolicy(_ policy: LAPolicy, localizedReason: String, reply: @escaping (Bool, Error?) -> Swift.Void)

示例代码

let context = LAContext()
context!.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) {
        (success, error) in

        if success {

            completed(true)
        }else {

            completed(false)
            print("\(error!)")
        }
  }

Demo下载

TouchIDAuthentication

更多更详细教程请访问个人站点: 码出一个长城

posted @ 2017-10-20 16:59  HarveyCC  阅读(318)  评论(0编辑  收藏  举报