iPhone 5s触控ID传感器API

15

在传言了很长时间之后,苹果公司宣布新款iPhone 5s将配备生物识别指纹传感器(Touch ID)。

苹果公司是否已经发布了该传感器的API/SDK?如果是,能否提供一个例子?


1
iOS 8将拥有Touch ID api。根据新闻稿:“iOS 8还包括Touch ID™ API,使开发人员能够在应用程序中安全地验证用户、保护登录和用户数据,并解锁钥匙串项。使用iOS 8,开发人员可以通过成功的指纹匹配提供身份验证,同时在安全区域中保护您的指纹数据。”对于开发人员,这里有一个WWDC视频链接 - LOP_Luke
这是一个关于TouchID和API的小例子代码/教程:http://www.ama-dev.com/ios8-touchid-tutorial/ - Alexander
1个回答

26

更新iOS版本至8或以上

iOS 8及以上版本已不再适用本回答中的旧方法。苹果公司推出了本地认证框架,您可以在应用程序中利用Touch ID功能。

引用+示例代码 (本地认证框架参考)

本地认证框架提供了向用户请求特定安全策略认证的功能。例如,要求用户使用Touch ID进行认证,您可以使用以下代码:

LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
NSString *myLocalizedReasonString = <#String explaining why app needs authentication#>;

if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
    [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                  localizedReason:myLocalizedReasonString
                            reply:^(BOOL succes, NSError *error) {
            if (success) {
                // User authenticated successfully, take appropriate action
            } else {
                // User did not authenticate successfully, look at error and take appropriate action
            }
        }];
} else {
    // Could not evaluate policy; look at authError and present an appropriate message to user
}

iOS < 7的旧答案

来自2013年9月10日的主题演讲,大约在演讲的第61分钟:

所有指纹信息都加密并存储在我们的新A7芯片内的安全隔离区中。在这里,它被锁定在其他一切之外,只能由Touch ID传感器访问。它从未提供给其他软件,也从未存储在苹果的服务器上或备份到iCloud。

目前为止,这就是所有可用的信息。话虽如此,这只是猜测,但我认为很可能不会有API可供使用。 如果有什么用途,使用传感器只能通过与钥匙串进行交互来完成,使操作系统可以与传感器进行交互,同时保持您的应用程序分开在其舒适的小沙盒中。

编辑:

看起来我们确实无法访问传感器。以下是来自ALLThingsD文章的引用(链接如下)。

苹果高级副总裁菲尔·席勒向AllThingsD证实,开发者无法使用指纹作为身份认证手段。他拒绝对未来是否会出现这种可能性发表评论。

http://allthingsd.com/20130910/iphone-developers-wont-get-fingerprint-reader-authentication-option-for-now-anyway/


访问传感器是一回事,但是对于应用程序的增加安全性只需验证指纹呢? - Jonathan
我曾经在某处读到过,有人可以通过指纹存储和加密登录凭据。我的理解是:1.使用用户名和密码登录应用程序。2.要求用户使用指纹来存储这些凭据。3.以后每次登录都可以使用指纹完成。 - yershuachu
@yershuachu:如果您能分享您的源代码,那就太好了。 - Dio Phung

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接