手记

app高大上的指纹识别登陆

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);
    
    }

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



作者:Funny_艺术家
链接:https://www.jianshu.com/p/6f3d1f7c2c6d


0人推荐
随时随地看视频
慕课网APP