有什么方法可以在iOS钥匙链中使用Touch ID,但不提示用户密码?

问题描述 投票:7回答:3

我想在iOS Keychain中安全地存储用户凭证,但我只希望用户能够使用他们的指纹来检索Keychain项目。有没有一种工作流程可以调用Touch ID传感器来检索Keychain项目,并能够驳回密码解锁或完全不回落到密码?

我已经实现了WWDC会议上定义的关于Touch ID和Keychain的方法,但我不想像他们的演示那样回到设备密码。我想让用户在指纹扫描失败后以传统方式登录。

ios objective-c mobile ios8 keychain
3个回答
6
投票

@岸川胜美 是对的,在iOS 8中,没有办法禁用密码回退。在iOS 8中,没有办法禁用密码回退。kSecAccessControlUserPresence 访问控制标志在Touch ID或Passcode认证成功后,就可以访问一个项目,甚至不需要Touch ID就可以使用。

不过这一点在iOS 9中已经得到了改进。两个Touch ID相关的标志。kSecAccessControlTouchIDAnykSecAccessControlTouchIDCurrentSet, 已添加.

所以,当你为Keychain项目创建访问控制对象时,你需要使用这两个标志中的任何一个(使用 SecAccessControlCreateWithFlags 函数),并将该对象分配给 kSecAttrAccessControl 属性时,添加带有 SecItemAdd 功能。

苹果的例子 证明了这一点;见 addTouchIDItemAsync 方法。另见 此职位 以了解 iOS 9 中其他安全相关更改的概述。


5
投票

您可以使用以下功能自定义 "输入密码 "按钮 localizedFallbackTitle 财产

LAContext *myContext = [[LAContext alloc] init];
myContext.localizedFallbackTitle = @"sign in traditionally";

如果你想删除回退按钮,只需设置这样的属性即可。

myContext.localizedFallbackTitle = @"";

0
投票

在Keychain TouchID集成中,没有办法禁用使用密码的回退机制。

© www.soinside.com 2019 - 2024. All rights reserved.