ios中指纹密码鉴定

一、引言

iPhone5s之后,iPhone硬件上已支持进行指纹识别的功能,相应的,一些新的api也可以应用于APP中,进行用户安全的验证。目前,开发者可以使用的安全验证方式有两种,一种是通过手机密码进行验证,一种是通过识别指纹进行验证。

二、为APP添加安全验证

要使用安全验证的相关api,我们需要引入如下头文件:

//typedef NS_ENUM(NSInteger, LAError)

//{

////用户验证没有通过,比如提供了错误的手指的指纹

//LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed,

//

////用户取消了Touch ID验证

//LAErrorUserCancel= kLAErrorUserCancel,

//

////用户不想进行Touch ID验证,想进行输入密码操作

//LAErrorUserFallback= kLAErrorUserFallback,

//

////系统终止了验证

//LAErrorSystemCancel= kLAErrorSystemCancel,

//

////用户没有在设备Settings中设定密码

//LAErrorPasscodeNotSet= kLAErrorPasscodeNotSet,

//

////设备不支持Touch ID

//LAErrorTouchIDNotAvailable= kLAErrorTouchIDNotAvailable,

//

////设备没有进行Touch ID指纹注册

//LAErrorTouchIDNotEnrolled= kLAErrorTouchIDNotEnrolled,

//} NS_ENUM_AVAILABLE(10_10, 8_0);


三.代码

//初始化上下文对象

LAContext*context = [[LAContextalloc]init];

NSError*error;

NSString*result =@"需要您的支付进行支付";

context.localizedFallbackTitle=@"快捷支付";

//首先使用canEvaluatePolicy判断设备的支付状态

if([contextcanEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometricserror:&error]) {

//支持指纹的验证

[contextevaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometricslocalizedReason:resultreply:^(BOOLsuccess,NSError*_Nullableerror) {

if(success) {

//验证成功,主线程处理UI

NSLog(@"验证成功");

}else{

switch(error.code) {

caseLAErrorSystemCancel:

{

//切换到其他App,系统取消验证Touch ID

}

break;

caseLAErrorUserCancel:

{

//用户取消使用Touch ID

}

break;

caseLAErrorUserFallback:

{

//用户选择输入密码,切换主线程处理

[[NSOperationQueuemainQueue]addOperationWithBlock:^{

//回到主线程进行活动

}];

}

break;

caseLAErrorAuthenticationFailed:

{//用户验证没有通过。比如提供了错误的手指指纹

}

break;

caseLAErrorTouchIDLockout:

{

}

break;

caseLAErrorAppCancel:

{

}

break;

caseLAErrorInvalidContext:

{

}

break;

default:

{

[[NSOperationQueuemainQueue]addOperationWithBlock:^{

//其他情况需要在主线程进行处理

}];

}

break;

}

}

}];

}else{

switch(error.code) {

caseLAErrorTouchIDNotEnrolled:

{

}

break;

caseLAErrorPasscodeNotSet:

{

}

break;

default:

{

// Touch ID不可使用

}

break;

}

}

}

你可能感兴趣的:(ios中指纹密码鉴定)