華山論劍之淺談iOS的Touch ID驗(yàn)證


序言


在iOS 8系統(tǒng)開發(fā)的時(shí)候,蘋果官方就開始開放了Touch ID的驗(yàn)證接口功能,這樣開發(fā)人員就可以在應(yīng)用程序中判斷輸入的Touch ID 是否是持有者的Touch ID.當(dāng)然了,只能驗(yàn)證成功與否,卻不能得到具體的信息.


準(zhǔn)備工作


  1. 首先我們需要在系統(tǒng)設(shè)置的"Touch ID 與密碼"這個(gè)選項(xiàng)中保存我們的指紋信息.

2.在Xcode中,我們需要導(dǎo)入對(duì)應(yīng)的庫.庫名和示意圖如下.

LocalAuthentication.framework
添加位置


Touch ID驗(yàn)證實(shí)現(xiàn)


  1. 如下,LocalAuthentication.framework中提供了兩個(gè)方法,我們看一下,這個(gè)方法分別的作用.
 //這個(gè)方法是用來判斷是否能夠驗(yàn)證Touch ID

canEvaluatePolicy: error: 
//這個(gè)方法是用來驗(yàn)證Touch ID,localizedReason后面跟的是驗(yàn)證過程中提示用戶的字符串,reply后面自帶著Bolck,我們可以對(duì)驗(yàn)證完成之后做出相應(yīng)的操作.

evaluatePolicy: localizedReason: reply:  
        
  1. 整個(gè)代碼部分我是寫在ViewController里面,用一個(gè)Button來調(diào)用Touch ID的驗(yàn)證事件,當(dāng)然,首先我們需要導(dǎo)入LocalAuthentication框架.
#import <LocalAuthentication/LocalAuthentication.h>

驗(yàn)證事件實(shí)現(xiàn)部分如下

//驗(yàn)證事件
- (IBAction)touchAction:(id)sender {
    
    LAContext *context = [[LAContext alloc]init];
    
    NSError *error = nil;
    
    if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
        
        
        
        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"請(qǐng)驗(yàn)證您的Touch ID" reply:^(BOOL success, NSError * _Nullable error) {
           
            if (success) {
                
                tipWithMessage(@"驗(yàn)證成功!");
                
            }else{
            
            
            
                tipWithMessage(@"驗(yàn)證失敗!");
                
            
            }
            
            
        }];
        
    }else{
    
    
        NSLog(@"%@",error);
    
    }
    
    
}

#pragma mark ---- 自定義宏彈窗 -----

NS_INLINE void tipWithMessage(NSString *message){
    
    dispatch_async(dispatch_get_main_queue(), ^{
        
        UIAlertView *alerView = [[UIAlertView alloc] initWithTitle:@"提示" message:message delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil];
        
        [alerView show];
        
        [alerView performSelector:@selector(dismissWithClickedButtonIndex:animated:) withObject:@[@0, @1] afterDelay:0.9];
        
    });
    
}

我們看一下真機(jī)測(cè)試效果如何(模擬器根本就不行??)....
開始驗(yàn)證Touch ID
驗(yàn)證失敗,重新驗(yàn)證
當(dāng)然了,最后還是要附上Touch ID驗(yàn)證的Demo.以備不時(shí)之需,希望這篇文章能對(duì)您有所幫助.如果有問題,可以在下面的評(píng)論區(qū)提出,我會(huì)及時(shí)回復(fù)您的,謝謝.
--> Touch ID驗(yàn)證Demo ??
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,027評(píng)論 25 709
  • 1.以《三言兩拍》中“二拍”的第一篇為標(biāo)尺,確定出自己的閱讀層次,并據(jù)此制定一個(gè)閱讀套餐。(文言幾成+舊小說幾成+...
    蘭奢待閱讀 371評(píng)論 1 0
  • 作為一個(gè)快四十的大叔,忽然想起去學(xué)鋼琴,是不是很無聊。 答案是:是的,就是很無聊才去學(xué)琴的。 沒有妻子,沒有孩子,...
    簡生活家閱讀 701評(píng)論 0 2
  • task容器任務(wù)棧 當(dāng)用戶點(diǎn)擊某個(gè)應(yīng)用程序圖標(biāo)打開一個(gè)應(yīng)用時(shí),那么這個(gè)任務(wù)就處于前端。如果這個(gè)應(yīng)用程序之前未被打開...
    夏大王2019閱讀 351評(píng)論 0 0
  • 2017年第一張: 2017年第二張: 去年的這個(gè)時(shí)候,不知什么原因,一股強(qiáng)烈的畫畫欲望在體內(nèi)燃起。沒有任何基礎(chǔ)的...
    白衡閱讀 256評(píng)論 4 5

友情鏈接更多精彩內(nèi)容