美文网首页
ios中指纹密码鉴定

ios中指纹密码鉴定

作者: 傻傻小萝卜 | 来源:发表于2016-04-08 10:34 被阅读109次

    一、引言

    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;

    }

    }

    }

    相关文章

      网友评论

          本文标题:ios中指纹密码鉴定

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