成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS 8 中如何集成 Touch ID 功能

譯文
移動(dòng)開發(fā) iOS
2013年9月,蘋果為當(dāng)時(shí)發(fā)布的最新iPhone產(chǎn)品配備了一系列硬件升級(jí)方案。在iPhone 5s當(dāng)中,最具創(chuàng)新特性的機(jī)制無(wú)疑要數(shù)圍繞Home按鈕設(shè)計(jì)的超薄金屬圈,也就是被稱為Touch ID的指紋傳感器。開發(fā)人員隨后開始紛紛將其API作為突破口,希望能在自己的應(yīng)用程序中引入這一最新功能。如今一年已經(jīng)過去,iOS 8提供的新型框架則讓開發(fā)者能夠更加得心應(yīng)手地使用這套指紋傳感裝置。

2013年9月,蘋果為當(dāng)時(shí)發(fā)布的***iPhone產(chǎn)品配備了一系列硬件升級(jí)方案。在iPhone 5s當(dāng)中,***創(chuàng)新特性的機(jī)制無(wú)疑要數(shù)圍繞Home按鈕設(shè)計(jì)的超薄金屬圈,也就是被稱為Touch ID的指紋傳感器。開發(fā)人員隨后開始紛紛將其API作為突破口,希望能在自己的應(yīng)用程序中引入這一***功能。如今一年已經(jīng)過去,iOS 8提供的新型框架則讓開發(fā)者能夠更加得心應(yīng)手地使用這套指紋傳感裝置。

這套Local Authentication框架能夠輕松實(shí)現(xiàn)用戶身份驗(yàn)證,大家可以利用它來(lái)完成應(yīng)用程序的登錄機(jī)制或者通過它保護(hù)應(yīng)用程序當(dāng)中的敏感數(shù)據(jù)。在今天的教程中,我們將共同了解如何將整套選項(xiàng)應(yīng)用在自己的設(shè)計(jì)成果當(dāng)中、我們能夠從設(shè)備中獲取哪些數(shù)據(jù)并一步步引導(dǎo)各位構(gòu)建起一款示例應(yīng)用程序。

要完成本教程,大家需要安裝Xcode 6以創(chuàng)建新項(xiàng)目,此外各位還需要一臺(tái)配備Touch ID的設(shè)備來(lái)對(duì)自己創(chuàng)建完成的示例應(yīng)用進(jìn)行測(cè)試。

1. Touch ID

Touch ID指的是被安裝在iPhone 5s Home按鈕當(dāng)中的指紋傳感裝置。它的出現(xiàn)旨在幫助用戶更為輕松地完成身份識(shí)別流程,從而鼓勵(lì)使用者盡可能多地使用保護(hù)機(jī)制。大家在每臺(tái)設(shè)備上最多能夠配置五種指紋識(shí)別信息。到目前為止,Touch ID已經(jīng)能夠被用于完成設(shè)備解鎖并完成在iTunes Store、App Store以及iBooks Store當(dāng)中的購(gòu)買操作。在進(jìn)一步探討如何將其引入大家自己的應(yīng)用程序之前,我們首先需要對(duì)這款傳感器本身進(jìn)行一番了解。

[[121178]]

Touch ID傳感器能夠以每英寸500像素的分辨率對(duì)用戶指紋進(jìn)行掃描,并將指紋圖案劃歸為三種類型之一:拱型、旋渦型以及環(huán)型。這款傳感器在設(shè)計(jì)上充分考慮到了便捷性需求,大家可以從任何角度對(duì)手指進(jìn)行掃描、而且當(dāng)前掃描結(jié)果能夠與任何方向的原有指紋記錄進(jìn)行正確匹配。

蘋果公司宣稱,對(duì)于任何一個(gè)給定指紋圖案、Touch ID發(fā)生識(shí)別錯(cuò)誤的機(jī)率僅為五萬(wàn)分之一,這樣的保護(hù)效果明顯優(yōu)于原本的四位數(shù)PIN碼機(jī)制——畢竟其內(nèi)容只能在0001到9999之間提供一萬(wàn)種可能性組合。不過蘋果沒有明顯指出的是,在某些情況下我們可能無(wú)法使用自己的指紋順利實(shí)現(xiàn)解鎖操作,例如在游泳之后手指紋理褶皺發(fā)生變化時(shí)。

如果大家打算使用Touch ID,那么最重要的一點(diǎn)就是首先考慮到那些用戶可能無(wú)法使用手指進(jìn)行驗(yàn)證的使用場(chǎng)景。由于蘋果不再允許我們使用設(shè)備內(nèi)自帶的PIN碼驗(yàn)證機(jī)制,因此如果Touch ID無(wú)法正常起效、大家***能在應(yīng)用程序當(dāng)中額外建立一套密碼匹配方案。

2. 安全注意事項(xiàng)

指令傳感器帶來(lái)的***問題在于,用戶的隱私會(huì)從根本上受到侵犯。如果大家的密碼內(nèi)容被泄露出去,那么各位完全可以通過修改及時(shí)挽救、惡意人士根本無(wú)法繼續(xù)利用其訪問用戶的敏感數(shù)據(jù)。然而如果大家的指紋信息,或者是蘋果的指紋內(nèi)容算法遭到外泄,我們明顯沒辦法快速對(duì)其進(jìn)行變更。

Local Authentication框架負(fù)責(zé)處理所有用戶身份驗(yàn)證的重任。當(dāng)與Touch ID結(jié)合起效時(shí),最重要的就是要確保該框架不會(huì)透露任何與用戶有關(guān)的細(xì)節(jié)、而且不會(huì)有數(shù)據(jù)從設(shè)備中被傳輸出去。然而,開發(fā)人員可以利用這套框架來(lái)檢查特定用戶是否被允許使用對(duì)應(yīng)應(yīng)用程序。

如果大家已經(jīng)比較熟悉OAuth規(guī)范,就會(huì)發(fā)現(xiàn)這兩種驗(yàn)證處理方式其實(shí)頗為相似。我們要求第三方對(duì)用戶身份進(jìn)行審核,如果我們對(duì)第三方充分信任,則可以根據(jù)其反饋直接向該用戶提供認(rèn)證憑證。

3. LAContext

Local Authentication框架的核心就是LAContext類。開發(fā)人員可以利用LAContext實(shí)例來(lái)對(duì)安全策略加以評(píng)估。截至本文發(fā)稿時(shí),這也是惟一可資使用的管理策略。它會(huì)利用Touch ID傳感器來(lái)檢查用戶的身份是否正是設(shè)備持有者。未來(lái)其它安全管理策略可能將陸續(xù)推出。舉例來(lái)說(shuō),蘋果公司可能會(huì)引入一類無(wú)權(quán)限角色、只允許他們對(duì)特定資源加以訪問。

如果這套框架無(wú)法完成驗(yàn)證,則會(huì)提供錯(cuò)誤提示信息。設(shè)備無(wú)法完成驗(yàn)證的理由可能包括以下幾種:

  • LAErrorTouchIDNotAvailable 設(shè)備本身并不具備指紋傳感裝置。
  • LAErrorPasscodeNotSet 設(shè)備上并不具備密碼設(shè)置信息,也就是說(shuō)Touch ID功能處于被禁用狀態(tài)。
  • LAErrorTouchIDNotEnrolled 已經(jīng)設(shè)定有密碼機(jī)制,但設(shè)備配置當(dāng)中還沒有保存過任何指紋內(nèi)容。

如果遇到了包含上述錯(cuò)誤碼的錯(cuò)誤提示信息,大家就需要利用其它一些方法來(lái)完成對(duì)用戶的身份驗(yàn)證。在這種情況下,各位已經(jīng)不能單單依賴Touch ID來(lái)完成保護(hù)工作了。

下面讓我們一起創(chuàng)建一款示例應(yīng)用程序,共同了解如何對(duì)Local Authentication框架加以使用。

4. 項(xiàng)目設(shè)置

***步

打開Xcode并在File菜單內(nèi)選擇New > Project…。接下來(lái)在iOS Application模板列表中選擇Single View Application(單視圖應(yīng)用程序)并點(diǎn)擊Next。

第二步

為我們的項(xiàng)目輸入一個(gè)名稱,我叫自己的應(yīng)用命名為Auth。接下來(lái)輸入組織名稱、公司標(biāo)識(shí)以及類前綴。在Devices列表中選擇iPhone,然后點(diǎn)擊Next,接下來(lái)為項(xiàng)目選擇一個(gè)文件保存位置。

第三步

點(diǎn)擊ViewController.h并定義一種新操作,authenticateButtonTapped,它會(huì)觸發(fā)整個(gè)驗(yàn)證流程。ViewController類的界面外觀應(yīng)該如下所示:

  1. #import <UIKit/UIKit.h> 
  2. @interface ViewController : UIViewController 
  3. - (IBAction)authenticateButtonTapped:(id)sender; 
  4. @end 

第四步

打開Main.storyboard并將一個(gè)Button拖拽到控制器的視圖當(dāng)中。變更該按鈕的標(biāo)簽以使其讀取為Authneticate。

第五步

右鍵點(diǎn)擊該按鈕以顯示Connections Inspector。點(diǎn)擊Touch Up Inside事件左側(cè)的加號(hào)并選擇用于容納該按鈕的視圖控制器。這時(shí)屏幕上會(huì)顯示出新的菜單,大家需要在這里選擇我們之前已經(jīng)設(shè)置完成的操作。

5. 對(duì)用戶身份進(jìn)行驗(yàn)證

***步

開啟ViewController.m以激活authenticateButtonTapped方法。在文件開頭位置添加以下面向Local Authentication框架的導(dǎo)入語(yǔ)句。

  1. #import <LocalAuthentication/LocalAuthentication.h> 

第二步

在authenticateButtonTapped方法當(dāng)中,我們創(chuàng)建一套背景信息并檢測(cè)該背景是否能夠?qū)APolicyDeviceOwnerAuthenticationWithBiometrics策略加以評(píng)估,如果不同則顯示錯(cuò)誤信息。

  1. - (IBAction)authenticateButtonTapped:(id)sender { 
  2.     LAContext *context = [[LAContext alloc] init]; 
  3.  
  4.     NSError *error = nil; 
  5.  
  6.     if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) { 
  7.  
  8.         // Authenticate User 
  9.  
  10.     } else { 
  11.  
  12.         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" 
  13.                                                         message:@"Your device cannot authenticate using TouchID." 
  14. delegate:nil 
  15. cancelButtonTitle:@"Ok" 
  16. otherButtonTitles:nil]; 
  17.         [alert show]; 
  18.     } 

第三步

如果該LAContext對(duì)象能夠利用Touch ID進(jìn)行身份驗(yàn)證,那么我們就可以對(duì)用戶身份加以審核了。如果沒有出現(xiàn)錯(cuò)誤提示信息,我們就能判斷當(dāng)前用戶是否屬于設(shè)備持有者。***通過以下代碼實(shí)施authenticateButtonTapped方法。

  1. - (void)authenicateButtonTapped:(id)sender { 
  2.    LAContext *context = [[LAContext alloc] init]; 
  3.    NSError *error = nil; 
  4.    if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) { 
  5.        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics 
  6.                localizedReason:@"Are you the device owner?" 
  7.                          reply:^(BOOL success, NSError *error) { 
  8.            if (error) { 
  9.                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" 
  10. message:@"There was a problem verifying your identity." 
  11. delegate:nil 
  12.                                                      cancelButtonTitle:@"Ok" 
  13.                                                      otherButtonTitles:nil]; 
  14.                [alert show]; 
  15.                return
  16.            } 
  17.            if (success) { 
  18.                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success" 
  19.                                                                message:@"You are the device owner!" 
  20. delegate:nil 
  21. cancelButtonTitle:@"Ok" 
  22. otherButtonTitles:nil]; 
  23.                [alert show]; 
  24.            } else { 
  25.                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" 
  26. message:@"You are not the device owner." 
  27. delegate:nil
  28. cancelButtonTitle:@"Ok" 
  29. otherButtonTitles:nil]; 
  30.                [alert show]; 
  31.            } 
  32.        }]; 
  33.    } else { 
  34.        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" 
  35.                                                        message:@"Your device cannot authenticate using TouchID." 
  36.                                                       delegate:nil 
  37.                                              cancelButtonTitle:@"Ok" 
  38.                                              otherButtonTitles:nil]; 
  39.        [alert show]; 
  40.    } 
  41. }

6. 構(gòu)建并運(yùn)行

下面我們需要在配備有指紋傳感器的物理設(shè)備上構(gòu)建并運(yùn)行這款應(yīng)用程序,并通過點(diǎn)觸Home按鈕進(jìn)行身份驗(yàn)證。只要大家的設(shè)備能夠切實(shí)支持Touch ID功能,應(yīng)用程序中的驗(yàn)證機(jī)制應(yīng)該就能得到正確通過。當(dāng)各位將手指放在傳感器上時(shí),應(yīng)用程序就可以正確識(shí)別出用戶是否屬于該設(shè)備的合法持有者。

總結(jié)

在今天的教程中,我們了解了iOS 8新近加入了Local Authentication框架。通過對(duì)用戶身份進(jìn)行查驗(yàn),LAContext類允許用戶在無(wú)法直接向應(yīng)用程序本身提供任何敏感數(shù)據(jù)的前提下完成識(shí)別工作。

英文原文鏈接:iOS 8: Integrating Touch ID

核子可樂譯

責(zé)任編輯:閆佳明 來(lái)源: 51CTO譯文
相關(guān)推薦

2014-10-13 09:57:31

SwiftTouch ID驗(yàn)證iOS 8

2015-04-10 19:59:31

iOS8.3Touch ID

2021-07-27 07:15:11

蘋果Touch IDiOS

2018-12-04 14:46:03

蘋果Face IDTouch ID

2011-09-05 10:39:03

Sencha Touc離線存儲(chǔ)數(shù)據(jù)庫(kù)

2011-05-11 10:28:03

2024-10-25 15:40:15

2021-02-01 16:55:13

iPhoneTouch ID蘋果

2011-01-18 09:47:33

自增ID

2011-07-22 13:23:56

IOS UI ScrollView

2011-06-15 16:11:51

UIKitCocoa TouchiOS

2011-08-17 10:09:25

iPhone開發(fā)UIWebViewTouch事件

2011-11-16 13:14:02

Sencha TouciOS本地應(yīng)用

2011-06-27 15:39:51

Cocoa Touch

2012-05-09 09:31:00

Windows 8網(wǎng)絡(luò)ID

2011-08-03 17:32:17

IOS UIScrollVi touch

2014-08-15 09:41:52

Ubuntu

2015-11-16 15:26:40

chrome3DiOS

2017-11-17 07:53:10

GoogleiPhone應(yīng)用程序

2009-08-16 19:43:07

linux中touchtouch命令linux命令行參數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久亚洲一区二区 | 欧美一区成人 | 国产亚洲一区二区三区在线观看 | 久久夜夜| 亚洲精品国产a久久久久久 午夜影院网站 | 国产三区视频在线观看 | 一级黄色短片 | 毛片网站在线观看 | 91成人免费电影 | 天天操夜夜操 | 国产精品自产拍在线观看蜜 | 成人免费视频网址 | 精品国产一区久久 | 欧美一区二区三区在线观看 | 久久精品99 | 国产一区二区三区www | 精精国产xxxx视频在线播放7 | 欧美日韩视频在线第一区 | 国产黄色免费网站 | 精彩视频一区二区三区 | 一区二区三区精品视频 | 中文字幕亚洲欧美日韩在线不卡 | 久久精品色欧美aⅴ一区二区 | 日韩成人精品在线 | 中文字幕一区二区三区日韩精品 | 日韩精品一区二区三区在线 | 九九精品在线 | 成人在线免费电影 | 国产亚洲一区二区三区 | 久久精品福利视频 | 亚洲一区二区三区在线视频 | 一级欧美黄色片 | 久久亚洲91 | 真人一级毛片 | 久久久久国产精品午夜一区 | 午夜影院在线观看免费 | 日本福利一区 | 久久精品a级毛片 | 亚洲免费在线 | 日产精品久久久一区二区福利 | 91精品久久久久 |