iOS8中如何集成TouchID指紋傳感器功能
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当中的购买操作。在进一步探讨如何将其引入大家自己的应用程序之前,我们首先需要对这款传感器本身进行一番了解。
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类的界面外观应该如下所示:
- #import
@interface ViewController : UIViewController - - (IBAction)authenticateButtonTapped:(id)sender; @end
第四步
打开Main.storyboard并将一个Button拖拽到控制器的视图当中。变更该按钮的标签以使其读取为Authneticate。
第五步
右键点击该按钮以显示Connections Inspector。点击Touch Up Inside事件左侧的加号并选择用于容纳该按钮的视图控制器。这时屏幕上会显示出新的菜单,大家需要在这里选择我们之前已经设置完成的操作。
5. 对用户身份进行验证第一步
开启ViewController.m以激活authenticateButtonTapped方法。在文件开头位置添加以下面向Local Authentication框架的导入语句。
- #import
第二步
在authenticateButtonTapped方法当中,我们创建一套背景信息并检测该背景是否能够对LAPolicyDeviceOwnerAuthenticationWithBiometrics策略加以评估,如果不同则显示错误信息。
- - (IBAction)authenticateButtonTapped:(id)sender { LAContext *context = [[LAContext alloc] init];
- NSError *error = nil;
- if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
- // Authenticate User
- } else {
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
- message:@"Your device cannot authenticate using TouchID." delegate:nil
- cancelButtonTitle:@"Ok" otherButtonTitles:nil];
- [alert show]; }
- }
第三步
如果该LAContext对象能够利用Touch ID进行身份验证,那么我们就可以对用户身份加以审核了。如果没有出现错误提示信息,我们就能判断当前用户是否属于设备持有者。最后通过以下代码实施authenticateButtonTapped方法。
- - (void)authenicateButtonTapped:(id)sender {
- LAContext *context = [[LAContext alloc] init];
- NSError *error = nil;
- if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
- [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
- localizedReason:@"Are you the device owner?"
- reply:^(BOOL success, NSError *error) {
- if (error) {
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
- message:@"There was a problem verifying your identity."
- delegate:nil cancelButtonTitle:@"Ok"
- otherButtonTitles:nil]; [alert show];
- return; } if (success) {
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success"
- message:@"You are the device owner!" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
- [alert show]; } else {
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"You are not the device owner." delegate:nilcancelButtonTitle:@"Ok"
- otherButtonTitles:nil];
- [alert show];
- }
- }];
- } else {
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
- message:@"Your device cannot authenticate using TouchID."
- delegate:nil
- cancelButtonTitle:@"Ok"
- otherButtonTitles:nil];
- [alert show]; } }
6. 构建并运行
下面我们需要在配备有指纹传感器的物理设备上构建并运行这款应用程序,并通过点触Home按钮进行身份验证。只要大家的设备能够切实支持Touch ID功能,应用程序中的验证机制应该就能得到正确通过。当各位将手指放在传感器上时,应用程序就可以正确识别出用户是否属于该设备的合法持有者。
总结
在今天的教程中,我们了解了iOS 8新近加入了Local Authentication框架。通过对用户身份进行查验,LAContext类允许用户在无法直接向应用程序本身提供任何敏感数据的前提下完成识别工作。
英文原文链接:
推薦系統(tǒng)
雨林木風(fēng) winxp下載 純凈版 永久激活 winxp ghost系統(tǒng) sp3 系統(tǒng)下載
系統(tǒng)大小:0MB系統(tǒng)類型:WinXP雨林木風(fēng)在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)知名品牌,雨林木風(fēng)WindowsXP其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,是一款穩(wěn)定流暢的系統(tǒng),雨林木風(fēng) winxp下載 純凈版 永久激活 winxp ghost系統(tǒng) sp3 系統(tǒng)下載,有需要的朋友速度下載吧。
系統(tǒng)等級:進(jìn)入下載 >蘿卜家園win7純凈版 ghost系統(tǒng)下載 x64 聯(lián)想電腦專用
系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win7蘿卜家園win7純凈版是款非常純凈的win7系統(tǒng),此版本優(yōu)化更新了大量的驅(qū)動,幫助用戶們進(jìn)行舒適的使用,更加的適合家庭辦公的使用,方便用戶,有需要的用戶們快來下載安裝吧。
系統(tǒng)等級:進(jìn)入下載 >雨林木風(fēng)xp系統(tǒng) xp系統(tǒng)純凈版 winXP ghost xp sp3 純凈版系統(tǒng)下載
系統(tǒng)大?。?/em>1.01GB系統(tǒng)類型:WinXP雨林木風(fēng)xp系統(tǒng) xp系統(tǒng)純凈版 winXP ghost xp sp3 純凈版系統(tǒng)下載,雨林木風(fēng)WinXP系統(tǒng)技術(shù)積累雄厚深耕多年,采用了新的系統(tǒng)功能和硬件驅(qū)動,可以更好的發(fā)揮系統(tǒng)的性能,優(yōu)化了系統(tǒng)、驅(qū)動對硬件的加速,加固了系統(tǒng)安全策略,運(yùn)行環(huán)境安全可靠穩(wěn)定。
系統(tǒng)等級:進(jìn)入下載 >蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 V2023 X64位系統(tǒng)下載
系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win10蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)的蘿卜家園品牌,(win10企業(yè)版,win10 ghost,win10鏡像),蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 ghost鏡像 X64位系統(tǒng)下載,其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,蘿卜家園win10純凈版是一款穩(wěn)定流暢的系統(tǒng),一直以來都以用戶為中心,是由蘿卜家園win10團(tuán)隊(duì)推出的蘿卜家園
系統(tǒng)等級:進(jìn)入下載 >蘿卜家園windows10游戲版 win10游戲?qū)I(yè)版 V2023 X64位系統(tǒng)下載
系統(tǒng)大小:0MB系統(tǒng)類型:Win10蘿卜家園windows10游戲版 win10游戲?qū)I(yè)版 ghost X64位 系統(tǒng)下載,蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)的蘿卜家園品牌,其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,蘿卜家園win10純凈版是一款穩(wěn)定流暢的系統(tǒng),一直以來都以用戶為中心,是由蘿卜家園win10團(tuán)隊(duì)推出的蘿卜家園win10國內(nèi)鏡像版,基于國內(nèi)用戶的習(xí)慣,做
系統(tǒng)等級:進(jìn)入下載 >windows11下載 蘿卜家園win11專業(yè)版 X64位 V2023官網(wǎng)下載
系統(tǒng)大小:0MB系統(tǒng)類型:Win11蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,windows11下載 蘿卜家園win11專業(yè)版 X64位 官網(wǎng)正式版可以更好的發(fā)揮系統(tǒng)的性能,優(yōu)化了系統(tǒng)、驅(qū)動對硬件的加速,使得軟件在WINDOWS11系統(tǒng)中運(yùn)行得更加流暢,加固了系統(tǒng)安全策略,WINDOWS11系統(tǒng)在家用辦公上跑分表現(xiàn)都是非常優(yōu)秀,完美的兼容各種硬件和軟件,運(yùn)行環(huán)境安全可靠穩(wěn)定。
系統(tǒng)等級:進(jìn)入下載 >
相關(guān)文章
- 《巫師3:狂獵》游戲中因缺失steam_api64.dll文件導(dǎo)致的問題應(yīng)該如何解決
- 解決《巫師3:狂獵》游戲中因缺失nvapi64.dll文件導(dǎo)致的問題
- 解決《巫師3:狂獵》游戲中因缺失phyx3common_64.dll文件導(dǎo)致的問題
- NBA 2K19啟動故障的深度解析與應(yīng)對策略——解決缺失msvcr110.dll文件的問題
- 解決《英雄連2》游戲中steam_api.dll文件丟失導(dǎo)致無法啟動的問題
- 解決《勇者斗惡龍:英雄》游戲中丟失steam_api64.dll文件的問題
- 解決《勇者斗惡龍:英雄》游戲中缺失msvcp110.dll文件的問題
- PUBG(絕地求生)因缺失DLL文件導(dǎo)致無法啟動的全方位解決方案及深度解析
- 當(dāng)電腦C盤滿載時,如何科學(xué)、高效地進(jìn)行清理與釋放空間
- NewtabPro瀏覽器插件:集合ChatGPT、PDF轉(zhuǎn)換、OCR識別、谷歌翻譯及趣味減壓功能于一體的高效在線工具
- win11任務(wù)欄圖標(biāo)變黑變暗怎么辦?win11任務(wù)欄圖標(biāo)變暗處理教程分享
- win11搜索欄一直在加載無法使用深入解決方法分享
- win11休眠后喚醒點(diǎn)擊圖標(biāo)沒反應(yīng)?win11休眠后喚醒點(diǎn)擊圖標(biāo)沒反應(yīng)全方位解決指南
- 設(shè)置壁紙后不能鋪滿屏幕電腦桌面的邊緣顯示黑邊怎么處理?
熱門系統(tǒng)
推薦軟件
推薦應(yīng)用
推薦游戲
熱門文章
常用系統(tǒng)
- 1windows11最新穩(wěn)定版下載 電腦公司x64位 激活密鑰 筆記本專用下載
- 2win10中秋國慶版下載 深度技術(shù)64位專業(yè)版 Ghost鏡像下載 永久免費(fèi)
- 3系統(tǒng)之家windows11企業(yè)版最新 ghost x64bit v2022.05下載
- 4深度技術(shù)win11娛樂版 X64位最新版下載 ISO鏡像 華碩電腦專用下載
- 5Windows7家庭版下載 電腦公司x86內(nèi)部版 官網(wǎng)鏡像下載 無需密鑰激活
- 6windowsXP系統(tǒng)之家 純凈版 V2023 XP ghost鏡像最新版下載
- 7電腦公司windows11專業(yè)版 x64 v2022.05 ghost下載
- 8外星人Win11游戲版系統(tǒng) WINDOWS11游戲?qū)S冒鎣2021.11
- 9Windows10經(jīng)典珍藏版下載 電腦公司 x64位穩(wěn)定版下載 筆記本專用