iOS 8手势验证 手势密码

作者: GA_ | 来源:发表于2017-12-21 17:14 被阅读13次

// 验证系统指纹和密码

  1. LAPolicyDeviceOwnerAuthenticationWithBiometrics就是说,用的是手指指纹去验证的;NS_ENUM_AVAILABLE(NA, 8_0)iOS8 可用
  2. LAPolicyDeviceOwnerAuthentication少了WithBiometrics则是使用TouchID或者密码验证,默认是错误两次指纹或者锁定后,弹出输入密码界面;NS_ENUM_AVAILABLE(10_11, 9_0)iOS 9可用
  • iOS 9 之前是没有LAErrorTouchIDLockout锁定这个选项的,默认错误5次后;第6次验证是自动弹出输入密码界面;
  • iOS 9 之后锁定指纹识别之后,如果需要立即弹出输入密码界面需要使用LAPolicyDeviceOwnerAuthentication这个属性重新发起验证
  • 如果输入了锁屏密码,指纹解密锁定会默认解除
/*
 YYSystemPassword.share.systemPasswordEvaluate { (result) in
     if (result) {
        self.navigationController?.popViewController(animated: true)
     } else {
        print("失败")
     }
 }
 */

import Foundation
import LocalAuthentication

class YYSystemPassword {
    
    static let share: YYSystemPassword = YYSystemPassword()
    
    typealias SystemPasswordHandler = (_ success: Bool) -> ()
    private var systemPasswordHandler: SystemPasswordHandler!
    
    public func systemPasswordEvaluate(handler: @escaping SystemPasswordHandler) {
        self.systemPasswordHandler = handler
        
        evaluateDeviceOwnerAuthenticationWithBiometrics()
    }
    
    private func evaluateDeviceOwnerAuthenticationWithBiometrics() {
        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 {
                        // User authenticated successfully, take appropriate action
                        print("success")
                        DispatchQueue.main.async {
                            self.systemPasswordHandler(true)
                        }
                    } else {
                        // User did not authenticate successfully, look at error and take appropriate action
                        self.evaluateDeviceOwnerAuthentication()
                    }
                }
            } else {
                print("failed1")
                evaluateDeviceOwnerAuthentication()
            }
        }
    }
    
    private func evaluateDeviceOwnerAuthentication() {
        let myContext = LAContext()
        let myLocalizedReasonString = "密码输入"
        var authError: NSError?
        if myContext.canEvaluatePolicy(.deviceOwnerAuthentication, error: &authError) {
            myContext.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: myLocalizedReasonString) { success, evaluateError in
                if success {
                    // User authenticated successfully, take appropriate action
                    print("success")
                    DispatchQueue.main.async {
                        self.systemPasswordHandler(true)
                    }
                } else {
                    // User did not authenticate successfully, look at error and take appropriate action
                    print("failed2")
                    self.systemPasswordHandler(false)
                }
            }
        } else {
            self.systemPasswordHandler(false)
        }
    }
    
}

参考:
http://blog.csdn.net/zzzzzdddddxxxxx/article/details/53513909

相关文章

  • iOS 手势密码

    源码参考:链接密码:37gm 源码可实现设置手势密码、登陆验证手势密码、修改手势密码 另外添加了钥匙串本地保存手势...

  • iOS 8手势验证 手势密码

    // 验证系统指纹和密码 LAPolicyDeviceOwnerAuthenticationWithBiomet...

  • iOS手势解锁,手势密码,指纹验证

    Demo地址 1.手势密码 API 使用方法 2.指纹验证 关于指纹验证,之前一篇文章已经写过,这里简单封装了下 ...

  • iOS手势验证

    CoreLock:https://github.com/CharlinFeng/CoreLock 最近需要要增加手...

  • 使用CoreGraphics绘图

    由于近期在做一个手势密码相关的项目,绘制手势密码用到CoreGraphics框架。 兴趣驱动下,我查阅了一下iOS...

  • 手势密码验证逻辑

    1. 背景 公司最近的项目为了保护App数据资源的安全,而又为了节省用户操作的步骤,而采用了手势密码优化验证过程。...

  • 【iOS学习】——手势识别

    iOS 手势 手势需要开启用户交互 点击手势 单击手势 双击手势 添加 numberOfTapsRequired...

  • iOS 手势密码

    git地址:https://github.com/LYSBuildCode/LYSGPasswordView.gi...

  • 手势密码-iOS

    手势密码实现效果:

  • iOS事件(二)手势

    iOS手势 轻拍手势UITapGestureRecognizer 长按手势UILongPressGestureRe...

网友评论

    本文标题:iOS 8手势验证 手势密码

    本文链接:https://www.haomeiwen.com/subject/vaeawxtx.html