初級_iOS Touch ID

iPhone5以上設備不支持Touch ID,iPhone5s并且iOS 8 SDK開始支持Touch ID。

配置

framework中引入LocalAuthentication, 該framework實際上只有三個頭文件:
LAContext.h
LAError.h
LAPublicDefines.h
主要使用方法有兩個:
// 用來判斷設備是否支持Touch ID
-(BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError * __autoreleasing )error;
// 真正驗證身份
-(void)evaluatePolicy:(LAPolicy)policy localizedReason:(NSString
)localizedReason reply:(void(^)(BOOL success, NSError *error))reply;

認證失敗錯誤類型

1.認證是不成功的铸敏,因為用戶無法提供有效的指紋祟霍。
LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed
2.認證取消了用戶(例如:取消按鈕)歪泳。
LAErrorUserCancel = kLAErrorUserCancel
3.認證被取消了锉屈,因為用戶點擊回退按鈕(輸入密碼)。
LAErrorUserFallback = kLAErrorUserFallback
4.認證取消了系統(tǒng)(例如办龄,另一個應用程序到前臺烘绽,用戶切到了其他程序)。
LAErrorSystemCancel = kLAErrorSystemCancel
5.認證無法啟動俐填,因為密碼沒有在設備上設置安接。
LAErrorPasscodeNotSet = kLAErrorPasscodeNotSet
6.無法啟動身份驗證,因為touch id 在此臺設備上是無效的玷禽。
LAErrorTouchIDNotAvailable = kLAErrorTouchIDNotAvailable
7.認證不能啟動赫段,因為 touch id 沒有錄入指紋。
LAErrorTouchIDNotEnrolled = kLAErrorTouchIDNotEnrolled
8.認證是不成功的矢赁,因為有太多的失敗的觸摸使touchID被鎖了。(需要解鎖Touch ID贬丛,例如評估lapolicydeviceownerauthenticationwithbiometrics會要求密碼為前提撩银。)
LAErrorTouchIDLockout = kLAErrorTouchIDLockout
9.認證被取消的應用(如電話應用進入前臺當前軟件被動掛起,用戶不能控制的掛起)豺憔。
LAErrorAppCancel = kLAErrorAppCancel
10.LAContext就是授權過程中LAContext對象被釋放掉了额获,造成的授權失敗够庙。
LAErrorInvalidContext = kLAErrorInvalidContext

備注

1.在 iPhone5 上的時候,LAContext *myContext = [[LAContext alloc] init]; 初始化的對象為 nil。
2.在5s 上沒有設置指紋密碼時, error = -7 (LAErrorTouchIDNotEnrolled)抄邀。
3.輸入錯誤指紋時.若一共有三次機會,三次全部錯誤后, error = -1 (LAErrorAuthenticationFailed)
4.myContext.localizedFallbackTitle耘眨,修改指紋驗證彈框右側輸入密碼按鈕文案屬性。
5.myContext.localizedCancelTitle境肾,修改指紋驗證彈框左側取消按鈕文案屬性剔难。
6.myContext.maxBiometryFailures,修改指紋驗證最大次數(shù)屬性奥喻。
7.認證失敗錯誤類型7偶宫,8,9三項是iOS9加入的三種新錯誤類型环鲤。

代碼

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"" delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil];

LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
NSString *myLocalizedReasonString = @"Restricted Area!";
//檢查Touch ID是否可用
if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
 //獲得指紋驗證結果
    [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
              localizedReason:myLocalizedReasonString
                        reply:^(BOOL success, NSError *error) {
                            if (success) {
                                // User authenticated successfully, take appropriate action
                                alert.title = @"Success";
                                alert.message = @"You have access to private content!";
                                [alert show];
                            } else {
                                // User did not authenticate successfully, look at error and take appropriate action
                                alert.title = @"Fail";

                                switch (error.code) {
                                    case LAErrorUserCancel:
                                        alert.message = @"Authentication Cancelled";
                                        break;

                                    case LAErrorAuthenticationFailed:
                                        alert.message = @"Authentication Failed";
                                        break;

                                    case LAErrorPasscodeNotSet:
                                        alert.message = @"Passcode is not set";
                                        break;

                                    case LAErrorSystemCancel:
                                        alert.message = @"System cancelled authentication";
                                        break;

                                    case LAErrorUserFallback:
                                        alert.message = @"You chosed to try password";
                                        break;

                                    default:
                                        alert.message = @"You cannot access to private content!";
                                        break;
                                }
                                [alert show];
                            }
                        }];
} else {
    // Could not evaluate policy; look at authError and present an appropriate message to user
    alert.title = @"Warning";

    if(authError.code == LAErrorTouchIDNotEnrolled) {
        alert.message = @"You do not have any fingerprints enrolled!";
    }else if(authError.code == LAErrorTouchIDNotAvailable) {
        alert.message = @"Your device does not support TouchID authentication!";
    }else if(authError.code == LAErrorPasscodeNotSet){
        alert.message = @"Your passcode has not been set";
    }

    [alert show];
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纯趋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子冷离,更是在濱河造成了極大的恐慌吵冒,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件西剥,死亡現(xiàn)場離奇詭異桦锄,居然都是意外死亡,警方通過查閱死者的電腦和手機蔫耽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門结耀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匙铡,你說我怎么就攤上這事图甜。” “怎么了鳖眼?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵黑毅,是天一觀的道長。 經(jīng)常有香客問我钦讳,道長矿瘦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任愿卒,我火速辦了婚禮废菱,結果婚禮上,老公的妹妹穿的比我還像新娘汽抚。我一直安慰自己精算,他們只是感情好,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著搞动,像睡著了一般躏精。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鹦肿,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天矗烛,我揣著相機與錄音,去河邊找鬼箩溃。 笑死瞭吃,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的碾篡。 我是一名探鬼主播虱而,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼开泽!你這毒婦竟也來了牡拇?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤穆律,失蹤者是張志新(化名)和其女友劉穎惠呼,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體峦耘,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡剔蹋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了辅髓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泣崩。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖洛口,靈堂內(nèi)的尸體忽然破棺而出矫付,到底是詐尸還是另有隱情,我是刑警寧澤第焰,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布买优,位于F島的核電站,受9級特大地震影響挺举,放射性物質(zhì)發(fā)生泄漏杀赢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一湘纵、第九天 我趴在偏房一處隱蔽的房頂上張望脂崔。 院中可真熱鬧,春花似錦瞻佛、人聲如沸脱篙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绊困。三九已至,卻和暖如春适刀,著一層夾襖步出監(jiān)牢的瞬間秤朗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工笔喉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留取视,地道東北人。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓常挚,卻偏偏與公主長得像作谭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子奄毡,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 前言:如果圖片看不了請移步:簡書 Touch ID簡介 Touch ID指紋識別作為iPhone 5s上的“殺手級...
    珍此良辰閱讀 2,978評論 3 6
  • 介紹 Touch ID是iPhone5S后加入的一項新的功能折欠,也就是大家熟知的指紋識別技術。iOS8后蘋果開放了T...
    Dincoln閱讀 1,283評論 0 2
  • iOS 8 SDK向開發(fā)者公開了Touch ID指紋識別功能吼过,允許App對用戶身份進行本地驗證锐秦。使用TouchID...
    走在路上的小二閱讀 932評論 0 4
  • 轉載請注明出處:http://www.reibang.com/p/b47a9de9c62f Apple本地認證(密...
    我不是掌柜閱讀 940評論 0 0
  • 各個瀏覽器在實現(xiàn)XML DOM的細節(jié)上有所不同: 解析XML的具體實現(xiàn)不同 IE使用的更多的是ActiveXObj...
    假裝會編程閱讀 227評論 0 1