ios中指纹密码鉴定

一、引言

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

二、为APP添加安全验证

要使用安全验证的相关api,我们需要引入如下头文件:<LocalAuthentication/LocalAuthentication.h>

//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;

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 自iPhone 5S始,苹果公司推出了全新生物安全识别技术---指纹识别验证(Touch ID)。使得我们可以更快...
    mrChan1234阅读 5,107评论 0 0
  • 一直想玩玩指纹解锁,近期时间比较闲,就研究了一下这个指纹解锁。这个功能实现起来还是很简单的,虽然看起来比较高大上,...
    weicyNO_1阅读 8,401评论 0 3
  • 【摘要】最近公司有个需求就是对APP进行加入屏幕解锁以及指纹解锁的功能。开始以为十分简单,其实本质上的难点不是在实...
    Anyeler阅读 5,841评论 0 3
  • 前言:如果图片看不了请移步:简书 Touch ID简介 Touch ID指纹识别作为iPhone 5s上的“杀手级...
    珍此良辰阅读 8,103评论 3 6
  • 简述: 在类似支付宝为首的应用以及各种理财等涉及钱财对安全性要求较高的应用中,目前普遍对关键数据都做了安全访问限制...
    C_HPY阅读 8,259评论 0 18

友情链接更多精彩内容