美文网首页Ios@IONIC
app高大上的指纹识别登陆

app高大上的指纹识别登陆

作者: Funnyer | 来源:发表于2016-05-30 13:04 被阅读858次

    iOS 8 SDK向开发者公开了Touch ID指纹识别功能,允许App对用户身份进行本地验证。使用Touch ID非常简单,只需要2步即可:

    1. 检查Touch ID是否可用。
    2. 获得指纹验证结果。

    首先需要添加LocalAuthentication.framework库,注意只有真机才有这个库,模拟器没有。

    #import <LocalAuthentication/LocalAuthentication.h>
    
        LAContext *ctx = [[LAContext alloc] init];
        NSError *error = nil;
        NSString *myLocalizedReasonString = @"请输入指纹";
        // 判断设备是否支持指纹识别
        if ([ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
            NSLog(@"支持");
            //提示:指纹识别只是判断当前用户是否是手机的主人!
            [ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:myLocalizedReasonString reply:^(BOOL success, NSError *error) {
                error = error;
                NSLog(@"%d %@", success, error);
                if (success) {
                    // 登录成功
                    NSLog(@"登陆成功");
                }else{
                
                    NSLog(@"%@",error.localizedDescription);
                    switch (error.code) {
                        case LAErrorSystemCancel:
                        {
                            NSLog(@"Authentication was cancelled by the system");
                            //切换到其他APP,系统取消验证Touch ID
                            break;
                        }
                        case LAErrorUserCancel:
                        {
                            NSLog(@"Authentication was cancelled by the user");
                            //用户取消验证Touch ID
                            break;
                        }
                        case LAErrorUserFallback:
                        {
                            NSLog(@"User selected to enter custom password");
                            [[NSOperationQueue mainQueue] addOperationWithBlock:^{
                                //用户选择输入密码,切换主线程处理
                            }];
                            break;
                        }
                        default:
                        {
                            [[NSOperationQueue mainQueue] addOperationWithBlock:^{
                                //其他情况,切换主线程处理
                            }];
                            break;
                        }
                    }
                }
            }];
        } else {
            NSLog(@"不支持");
            //不支持指纹识别,LOG出错误详情
            
            switch (error.code) {
                case LAErrorTouchIDNotEnrolled:
                {
                    NSLog(@"TouchID is not enrolled");
                    break;
                }
                case LAErrorPasscodeNotSet:
                {
                    NSLog(@"A passcode has not been set");
                    break;
                }
                default:
                {
                    NSLog(@"TouchID not available");
                    break;
                }
            }
            
            NSLog(@"%@",error.localizedDescription);
        
        }
    

    指纹识别登陆就是这么简单。虽然本人尚未在项目中使用这个功能,但是在我实际开发过程中遇到过机器注册大量刷单的情况,个人觉得在账号密码登录之后需要指纹识别登陆,能有效防止机器刷单。

    相关文章

      网友评论

        本文标题:app高大上的指纹识别登陆

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