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

iOS 8 中如何集成 Touch ID 功能

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

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

這套Local Authentication框架能夠輕松實現用戶身份驗證,大家可以利用它來完成應用程序的登錄機制或者通過它保護應用程序當中的敏感數據。在今天的教程中,我們將共同了解如何將整套選項應用在自己的設計成果當中、我們能夠從設備中獲取哪些數據并一步步引導各位構建起一款示例應用程序。

要完成本教程,大家需要安裝Xcode 6以創建新項目,此外各位還需要一臺配備Touch ID的設備來對自己創建完成的示例應用進行測試。

1. Touch ID

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

[[121178]]

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

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

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

2. 安全注意事項

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

Local Authentication框架負責處理所有用戶身份驗證的重任。當與Touch ID結合起效時,最重要的就是要確保該框架不會透露任何與用戶有關的細節、而且不會有數據從設備中被傳輸出去。然而,開發人員可以利用這套框架來檢查特定用戶是否被允許使用對應應用程序。

如果大家已經比較熟悉OAuth規范,就會發現這兩種驗證處理方式其實頗為相似。我們要求第三方對用戶身份進行審核,如果我們對第三方充分信任,則可以根據其反饋直接向該用戶提供認證憑證。

3. LAContext

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

如果這套框架無法完成驗證,則會提供錯誤提示信息。設備無法完成驗證的理由可能包括以下幾種:

  • LAErrorTouchIDNotAvailable 設備本身并不具備指紋傳感裝置。
  • LAErrorPasscodeNotSet 設備上并不具備密碼設置信息,也就是說Touch ID功能處于被禁用狀態。
  • LAErrorTouchIDNotEnrolled 已經設定有密碼機制,但設備配置當中還沒有保存過任何指紋內容。

如果遇到了包含上述錯誤碼的錯誤提示信息,大家就需要利用其它一些方法來完成對用戶的身份驗證。在這種情況下,各位已經不能單單依賴Touch ID來完成保護工作了。

下面讓我們一起創建一款示例應用程序,共同了解如何對Local Authentication框架加以使用。

4. 項目設置

***步

打開Xcode并在File菜單內選擇New > Project…。接下來在iOS Application模板列表中選擇Single View Application(單視圖應用程序)并點擊Next。

第二步

為我們的項目輸入一個名稱,我叫自己的應用命名為Auth。接下來輸入組織名稱、公司標識以及類前綴。在Devices列表中選擇iPhone,然后點擊Next,接下來為項目選擇一個文件保存位置。

第三步

點擊ViewController.h并定義一種新操作,authenticateButtonTapped,它會觸發整個驗證流程。ViewController類的界面外觀應該如下所示:

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

第四步

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

第五步

右鍵點擊該按鈕以顯示Connections Inspector。點擊Touch Up Inside事件左側的加號并選擇用于容納該按鈕的視圖控制器。這時屏幕上會顯示出新的菜單,大家需要在這里選擇我們之前已經設置完成的操作。

5. 對用戶身份進行驗證

***步

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

  1. #import <LocalAuthentication/LocalAuthentication.h> 

第二步

在authenticateButtonTapped方法當中,我們創建一套背景信息并檢測該背景是否能夠對LAPolicyDeviceOwnerAuthenticationWithBiometrics策略加以評估,如果不同則顯示錯誤信息。

  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對象能夠利用Touch ID進行身份驗證,那么我們就可以對用戶身份加以審核了。如果沒有出現錯誤提示信息,我們就能判斷當前用戶是否屬于設備持有者。***通過以下代碼實施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. 構建并運行

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

總結

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

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

核子可樂譯

責任編輯:閆佳明 來源: 51CTO譯文
相關推薦

2014-10-13 09:57:31

SwiftTouch ID驗證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離線存儲數據庫

2011-05-11 10:28:03

2011-01-18 09:47:33

自增ID

2024-10-25 15:40:15

2021-02-01 16:55:13

iPhoneTouch 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開發UIWebViewTouch事件

2011-11-16 13:14:02

Sencha TouciOS本地應用

2011-06-27 15:39:51

Cocoa Touch

2012-05-09 09:31:00

Windows 8網絡ID

2014-08-15 09:41:52

Ubuntu

2011-08-03 17:32:17

IOS UIScrollVi touch

2015-11-16 15:26:40

chrome3DiOS

2009-08-16 19:43:07

linux中touchtouch命令linux命令行參數

2017-11-17 07:53:10

GoogleiPhone應用程序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品一区二区三区在线观看 | 亚洲精品一区二区三区 | 国产精品美女www爽爽爽 | 日本免费一区二区三区视频 | 欧美日韩在线一区二区 | av在线一区二区三区 | 国产在线aa| 国产精品亚洲综合 | 毛片com| 精品视频免费 | 久久精品国产99国产精品 | 亚洲一区二区三区视频 | 一区二区视频免费观看 | 日韩三区 | 宅男伊人 | 91精品久久久久久久久 | 欧美中文字幕一区 | 黄a在线播放 | 91视频进入| 亚洲网站在线观看 | 九九亚洲| 欧美在线免费 | 久久中文字幕一区 | 日韩高清在线观看 | 美日韩精品 | 国产亚洲一区二区三区 | 午夜欧美 | 国产亚洲第一页 | 亚洲一区二区三区在线免费观看 | 国产亚洲网站 | 日韩国产中文字幕 | 天天干天天爽 | 亚洲性人人天天夜夜摸 | 国产精品久久久久久久久 | av网站在线看 | 四虎影院在线免费观看 | 午夜影院操 | 久久精品一区二区视频 | 中文字幕一区二区三区在线观看 | 91视频a| 精品1区|