美文网首页
添加TouchID支持(指纹识别)

添加TouchID支持(指纹识别)

作者: shiyuwudi | 来源:发表于2017-09-02 07:52 被阅读5次
-(void)finger {
    LAContext *context = [LAContext new];
    context.localizedFallbackTitle = @"";
    NSString *reasonStr = @"需要验证指纹才能进一步操作";
    NSError *err;
    if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&err]) {
        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:reasonStr reply:^(BOOL success, NSError * _Nullable evalPolicyError) {
            if (success) {
                NSLog(@"授权成功");
                //开始绑定
                [self bind];
            }else {
                switch (evalPolicyError.code) {
                    case LAErrorSystemCancel:{
                        [self failedPrompt:@"系统取消授权"];
                        break;
                    }
                    case LAErrorUserCancel:{
                        [self failedPrompt:@"用户取消授权"];
                        break;
                    }
                    default:{
                        [self failedPrompt:@"授权失败"];
                        break;
                    }
                }
            }
        }];
    } else {
        NSString *str = @"";
        switch (err.code) {
            case LAErrorTouchIDNotEnrolled:{
                str = @"没有注册指纹";
                break;
            }
            case LAErrorPasscodeNotSet:{
                str = @"没有注册指纹验证码";
                break;
            }
            default:
                //LAErrorTouchIDNotAvailable
                str = @"指纹识别不可用";
        }
        [self failedPrompt:str];
    }
}

开门见山。如上贴出指纹识别的一些关键代码,其实就是围绕着LAContext做文章。LA就是Local Authentication的缩写,也就是本地授权。所有成功和失败的情况已经全部体现在代码中。值得注意的是用户输入错误3次以上就会提示输入指纹验证码,也就是iOS设备注册指纹的时候以防万一的备用code。这个code如果通过的话也算是验证成功,如果想要禁用掉这个功能可以在localizedFallbackTitle中设置成空字符串。其他可以自定义的属性可以在LAContext官方文档的实例方法列表中找到(例如可以允许的最大失败数,默认好像是3;再例如指纹作用延长的时间,也就是一次成功验证之后多长时间内不用再次验证。。搞支付的朋友们还是别动这个属性就好。。;还有其他一些属性,有空研究)

最后简单提一嘴应用场景和业务逻辑,我们是仿支付宝在账户安全中加的一个开关,如果本机不支持指纹识别则隐藏该列,否则可以手动打开和关闭,打开后要验证支付密码,比对成功之后再绑定。密码存在UserDefaults中,建议用用户名作为key。然后每次内部支付前检查是否绑定了指纹支付,通过指纹验证后直接把保存的密码发送给服务器即可。

相关文章

  • 添加TouchID支持(指纹识别)

    开门见山。如上贴出指纹识别的一些关键代码,其实就是围绕着LAContext做文章。LA就是Local Authen...

  • 人脸识别简介

    随着Iphone X发布,革命性的取消了TouchID(指纹识别),而添加了更酷的 FaceID(人脸识别) 模块...

  • iOS 指纹登录(TouchID)集成方案

    TouchID指纹识别是iPhone 5S设备中增加的一项重大功能.苹果的后续移动设备也相继添加了指纹功能,在实际...

  • iOS 指纹登录(TouchID)集成方案

    TouchID指纹识别是iPhone 5S设备中增加的一项重大功能.苹果的后续移动设备也相继添加了指纹功能,在实际...

  • TouchID 指纹识别

    TouchID 指纹识别是iPhone 5s设备新增的一项重大功能,用于数据加密和安全。而在IOS 8.0 以后也...

  • iOS TouchID 认证(仅限设备支持指纹识别)

    iOS 8的SDK开放了Touch ID的接口.从WWDC的视频中可以看到Touch ID应用在两个方面:用于Ke...

  • Swift面容指纹识别LAManager

    前言 指纹识别(TouchID),面容识别(FaceID)在iPhone中是频繁使用的,随时随地都在关闭手机,解锁...

  • iOS指纹识别(TouchID)

    分享是每个优秀的程序员所必备的品质 越来越多的设备开始支持指纹识别,因为它更安全,更简单,这一定是个趋势。废话少说...

  • iOS 指纹识别

    iOS 8.0 & iPhone5s以后 苹果开发了touchID ,开发者能够使用指纹识别 首先倒入头文件 #i...

  • iOS 8 SDK添加Touch ID指纹识别功能

    iOS 8 SDK向开发者公开了Touch ID指纹识别功能,允许App对用户身份进行本地验证。使用TouchID...

网友评论

      本文标题:添加TouchID支持(指纹识别)

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