美文网首页Ios@IONIC@IT·互联网iOS Developer
IOS8使用Touch ID进行身份验证

IOS8使用Touch ID进行身份验证

作者: kuazi | 来源:发表于2015-10-23 15:29 被阅读3208次
Touch ID.png
IOS8 SDK 向开发者公开了Touch IDAPI。对于我们的产品和IOS开发,我们就有了一个新的吸引用户的眼球的方法。如果,我们app内有个指纹验证,是不是让用户眼球一亮呢?
好了,下面直接上代码:
使用Touch Id 需要引入LocalAuthentication框架
#import <LocalAuthentication/LocalAuthentication.h>

然后我直接在控制器加了个按钮 ,给它建了Touch Up Inside事件,先检查TouchID 是否可用,然后执行认证策略

- (IBAction)onclickButton:(id)sender {
    //新建LAContext实例
    LAContext  *authenticationContext= [[LAContext alloc]init];
    NSError *error;
    //1:检查Touch ID 是否可用
    if ([authenticationContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
        NSLog(@"touchId 可用");
        //2:执行认证策略
        [authenticationContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"需要验证您的指纹来确认您的身份信息" reply:^(BOOL success, NSError * _Nullable error) {
            if (success) {
                NSLog(@"通过了Touch Id指纹验证");
            }else{
                NSLog(@"error===%@",error);
                NSLog(@"code====%d",error.code);
                 NSLog(@"errorStr ======%@",[error.userInfo objectForKey:NSLocalizedDescriptionKey]);
                if (error.code == -2) {//点击了取消按钮
                    NSLog(@"点击了取消按钮");
                }else if (error.code == -3){//点输入密码按钮
                    NSLog(@"点输入密码按钮");
                }else if (error.code == -1){//连续三次指纹识别错误
                    NSLog(@"连续三次指纹识别错误");
                }else if (error.code == -4){//按下电源键
                    NSLog(@"按下电源键");
                }else if (error.code == -8){//Touch ID功能被锁定,下一次需要输入系统密码
                    NSLog(@"Touch ID功能被锁定,下一次需要输入系统密码");
                }
                NSLog(@"未通过Touch Id指纹验证");
            }
        }];
    }else{
        //todo goto 输入密码页面
        NSLog(@"error====%@",error);
        NSLog(@"抱歉,touchId 不可用");
    }
}

运行效果:


1597BC132A56B1B22542DD3D69D0A262.png

我们只需要对于error来做不同业务处理。

验证Touch ID 是否可用,error的不同情况

例如,在iphone5上运行结果:
Error Domain=com.apple.LocalAuthentication Code=-6 "Biometry is not available on this device." UserInfo=0x15ec5a00 {NSLocalizedDescription=Biometry is not available on this device.
例如,在模拟器上运行结果:
Error Domain=com.apple.LocalAuthentication Code=-1000 "Simulator is not supported." UserInfo=0x7ffe604b0790 {NSLocalizedDescription=Simulator is not supported.
例如,在有TouchID 的功能下,没有设置TouchID的运行结果:
Error Domain=com.apple.LocalAuthentication Code=-7 "No fingers are enrolled with Touch ID." UserInfo=0x170075fc0 {NSLocalizedDescription=No fingers are enrolled with Touch ID.

认证策略,error的不同情况

例如:连续三次指纹识别错误:
Error Domain=com.apple.LocalAuthentication Code=-1 "Aplication retry limit exceeded." UserInfo=0x1740797c0 {NSLocalizedDescription=Aplication retry limit exceeded.}
例如:用户在Touch ID对话框中点击了取消按钮:
Error Domain=com.apple.LocalAuthentication Code=-2 "Canceled by user." UserInfo=0x17006c780 {NSLocalizedDescription=Canceled by user.
例如:用户在Touch ID对话框中点击输入密码按钮:
Error Domain=com.apple.LocalAuthentication Code=-3 "Fallback authentication mechanism selected." UserInfo=0x17407e040 {NSLocalizedDescription=Fallback authentication mechanism selected.
例如:按下电源键:
Error Domain=com.apple.LocalAuthentication Code=-4 "UI canceled by system." UserInfo=0x170065900 {NSLocalizedDescription=UI canceled by system.}
例如:Touch ID功能被锁定,下一次需要输入系统密码时的运行结果:
Error Domain=com.apple.LocalAuthentication Code=-8 "Biometry is locked out." UserInfo={NSLocalizedDescription=Biometry is locked out.

被锁定之后,再次点击这个按钮,会出现如下的页面:

IMG_1086.PNG
对于error,我现在只找到这几种情况,如有更多,请告知。demo地址,请猛戳这里

相关文章

  • IOS8使用Touch ID进行身份验证

    然后我直接在控制器加了个按钮 ,给它建了Touch Up Inside事件,先检查TouchID 是否可用,然后执...

  • iOS 开发之内嵌指纹识别功能

    iPhone5S开始,推出指纹识别 iOS8.0之后苹果允许第三方 App 使用 Touch ID进行身份验证 指...

  • Touch ID 使用

    简单记录一下如何在自己的 APP 中调用系统 Touch ID 注意: 代码:

  • Touch ID 使用

    介绍 Touch ID是iPhone5S后加入的一项新的功能,也就是大家熟知的指纹识别技术。iOS8后苹果开放了T...

  • Touch ID使用

    前言:如果图片看不了请移步:简书 Touch ID简介 Touch ID指纹识别作为iPhone 5s上的“杀手级...

  • iOS Touch ID

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

  • app高大上的指纹识别登陆

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

  • 使用Touch Id验证

    在新版支付宝和新版QQ中都加入了指纹识别功能,这么高大上的功能自然要学学怎么使用了。 像这种调用系统功能的,自然要...

  • Touch ID 简单使用

    Touch ID 指纹识别首次应用是在2013年9月发布的iPhone 5s 上。在今天,指纹识别已经是所有智能手...

  • iOS 填坑之Touch ID与Face ID

    一、Touch ID 2013年随iPhone 5s面世,Apple开启了,Touch ID解锁在移动终端上的使用...

网友评论

    本文标题:IOS8使用Touch ID进行身份验证

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