[玩转MAC] iOS8中如何集成TouchID指纹传感器功能
作者:CC下载站 日期:2022-09-15 17:20:05 浏览:158 分类:玩电脑
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<UIKit/UIKit.h>@interfaceViewController:UIViewController
- -(IBAction)authenticateButtonTapped:(id)sender;@end
第四步
打开Main.storyboard并将一个Button拖拽到控制器的视图当中。变更该按钮的标签以使其读取为Authneticate。
第五步
右键点击该按钮以显示Connections Inspector。点击Touch Up Inside事件左侧的加号并选择用于容纳该按钮的视图控制器。这时屏幕上会显示出新的菜单,大家需要在这里选择我们之前已经设置完成的操作。
5.对用户身份进行验证第一步开启ViewController.m以激活authenticateButtonTapped方法。在文件开头位置添加以下面向Local Authentication框架的导入语句。
- #import<LocalAuthentication/LocalAuthentication.h>
第二步
在authenticateButtonTapped方法当中,我们创建一套背景信息并检测该背景是否能够对LAPolicyDeviceOwnerAuthenticationWithBiometrics策略加以评估,如果不同则显示错误信息。
- -(IBAction)authenticateButtonTapped:(id)sender{LAContext*context=[[LAContextalloc]init];
- NSError*error=nil;
- if([contextcanEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometricserror:&error]){
- //AuthenticateUser
- }else{
- UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:@"Error"
- message:@"YourdevicecannotauthenticateusingTouchID."delegate:nil
- cancelButtonTitle:@"Ok"otherButtonTitles:nil];
- [alertshow];}
- }
第三步
如果该LAContext对象能够利用Touch ID进行身份验证,那么我们就可以对用户身份加以审核了。如果没有出现错误提示信息,我们就能判断当前用户是否属于设备持有者。最后通过以下代码实施authenticateButtonTapped方法。
- -(void)authenicateButtonTapped:(id)sender{
- LAContext*context=[[LAContextalloc]init];
- NSError*error=nil;
- if([contextcanEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometricserror:&error]){
- [contextevaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
- localizedReason:@"Areyouthedeviceowner?"
- reply:^(BOOLsuccess,NSError*error){
- if(error){
- UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:@"Error"
- message:@"Therewasaproblemverifyingyouridentity."
- delegate:nilcancelButtonTitle:@"Ok"
- otherButtonTitles:nil];[alertshow];
- return;}if(success){
- UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:@"Success"
- message:@"Youarethedeviceowner!"delegate:nilcancelButtonTitle:@"Ok"otherButtonTitles:nil];
- [alertshow];}else{
- UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:@"Error"message:@"Youarenotthedeviceowner."delegate:nilcancelButtonTitle:@"Ok"
- otherButtonTitles:nil];
- [alertshow];
- }
- }];
- }else{
- UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:@"Error"
- message:@"YourdevicecannotauthenticateusingTouchID."
- delegate:nil
- cancelButtonTitle:@"Ok"
- otherButtonTitles:nil];
- [alertshow];}}
6.构建并运行
下面我们需要在配备有指纹传感器的物理设备上构建并运行这款应用程序,并通过点触Home按钮进行身份验证。只要大家的设备能够切实支持Touch ID功能,应用程序中的验证机制应该就能得到正确通过。当各位将手指放在传感器上时,应用程序就可以正确识别出用户是否属于该设备的合法持有者。
总结
在今天的教程中,我们了解了iOS 8新近加入了Local Authentication框架。通过对用户身份进行查验,LAContext类允许用户在无法直接向应用程序本身提供任何敏感数据的前提下完成识别工作。
英文原文链接:iOS 8: Integrating Touch ID
猜你还喜欢
- 09-06 [系统技巧] windows中,端口查看 关闭进程及Kill使用
- 09-06 [系统教程] Windows系统Git安装教程(详解Git安装过程)
- 06-26 [系统技巧] 远程桌面连接(mstsc)全攻略
- 03-29 [玩系统] Windows下强大的命令终端-Cmder
- 03-29 [系统技巧] Win10右键菜单添加“获取文件管理员权限”选项
- 03-29 [系统技巧] win10删除文件夹需要Administrator权限
- 03-09 [网络技巧] 如何使用IPv6地址直接访问http,https服务及Windows共享文件夹[UNC路径]
- 11-05 [系统技巧] 真的有后悔药!Win10超给力的备份功能你用过吗
- 11-05 [系统技巧] 发现Win11、Win10备份已禁用?帮你快速解决!
- 11-05 [电脑技巧] 科普|F1-F12快捷键有什么用?
- 11-05 [系统技巧] 永劫无间游戏卡顿、闪退 只需检查电脑这个设置
- 11-05 [系统技巧] Win10出现Runtime Error如何修复
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[课程] 《大师级航拍教程》63节课程视频 MP4格式 5.9G
[资料] 中医鬼才倪海厦全集完整版【PDF/MP4/RMVB】
[课程] 聂佳判断推理绝版课程大集合【8G】
[电视剧] 芈月传 【全集81集全】【未删减版】【国语中字】【2015】【HD720P】【75G】
[电视剧] 封神榜 梁丽版 (1989) 共5集 480P国语无字 最贴近原著的一版【0.98 G】
[影视] 【雪山飞孤4个版本】【1985、1991、1999、2007】【1080P、720P】【中文字幕】【167.1G】
[资料] 24秋初中改版教材全集(全版本)[PDF]
[电影] 高分国剧《康熙王朝》(2001)4K 2160P 国语中字 全46集 78.2G
[动画] 迪士尼系列动画139部 国英双语音轨 【蓝光珍藏版440GB】
[电影] 莫妮卡贝鲁奇为艺术献身电影大合集 1080P超清 双语字幕
[书籍] 彭子益医书合集 [PDF/DOC]
[游戏] 《黑神话悟空》免安装学习版【全dlc整合完整版】+Steam游戏解锁+游戏修改工具!
[动画] 《名侦探柯南》名侦探柯南百万美元的五菱星 [TC] [MP4]
[电视剧集] [BT下载][黑暗城市- 清扫魔 Dark City: The Cleaner 第一季][全06集][英语无字][MKV][720P/1080P][WEB-RAW]
[动画] 2002《火影忍者》720集全【4K典藏版】+11部剧场版+OVA+漫画 内嵌简日字幕
[剧集] 《斯巴达克斯》1-4季合集 无删减版 1080P 内嵌简英特效字幕
[CG剧情] 《黑神话:悟空》158分钟CG完整剧情合集 4K120帧最高画质
[游戏] 黑神话悟空离线完整版+修改器
[短剧] 被下架·禁播的羞羞短剧·午夜短剧合集
[图像处理] 光影魔术手v4.6.0.578绿色版
[影视] 美国内战 4K蓝光原盘下载+高清MKV版/内战/帝国浩劫:美国内战(台)/美帝崩裂(港) 2024 Civil War 63.86G
[影视] 一命 3D 蓝光高清MKV版/切腹 / 切腹:武士之死 / Hara-Kiri: Death of a Samurai / Ichimei 2011 一命 13.6G
[影视] 爱情我你他 蓝光原盘下载+高清MKV版/你、我、他她他 2005 Me and You and Everyone We Know 23.2G
[影视] 穿越美国 蓝光原盘下载+高清MKV版/窈窕老爸 / 寻找他妈…的故事 2005 Transamerica 20.8G
[电影] 《黄飞鸿》全系列合集
[Android] 开罗游戏 ▎像素风格的模拟经营的游戏厂商安卓游戏大合集
[游戏合集] 要战便战 v0.9.107 免安装绿色中文版
[书籍] 彭子益医书合集 [PDF/DOC]
[资源] 精整2023年知识星球付费文合集136篇【PDF格式】
[系统]【黑果小兵】macOS Big Sur 11.0.1 20B50 正式版 with Clover 5126 黑苹果系统镜像下载
- 最新评论
-
谢谢分享感谢ppy2016 评论于:11-05 谢谢分享感谢ppy2016 评论于:11-05 怎么没有后续闲仙麟 评论于:11-03 怎么没后续闲仙麟 评论于:11-03 有靳东!嘻嘻奥古斯都.凯撒 评论于:10-28 流星花园是F4处女作也是4人集体搭配的唯一一部!奥古斯都.凯撒 评论于:10-28 找了好久的资源,终于在这里找到了。感谢本站的资源和分享。谢谢AAAAA 评论于:10-26 找了好久的资源,终于在这里找到了。感谢本站的资源和分享。谢谢password63 评论于:10-26 找了好久的资源,终于在这里找齐了!!!!blog001 评论于:10-21 找了好久的资源,终于在这里找齐了!!!!blog001 评论于:10-21
- 热门tag