问题标签 [touch-id]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2270 浏览

ios - 在 iOS8 中只能通过指纹认证来访问钥匙串

我需要在 iOS 钥匙串上安全地存储/检索项目。

从 Apple KeyChainServicesReference 文档(https://developer.apple.com/library/ios/documentation/security/Reference/keychainservices/Reference/reference.html)我使用 SecItemCopyMatching 调用检索钥匙串项目。后者会弹出一个系统提示,用于针对允许使用指纹或 4 位电话密码的本地钥匙串进行身份验证。

虽然我认为使用指纹进行身份验证是安全的,但正是 4 位 PIN 选项降低了我当前的安全性。所以,我的问题是:有没有办法只用指纹选项查询钥匙串(没有密码选项,如果指纹验证失败,它只是失败,没有回退到 4 位密码)

我已经研究过 LocalAuthentication ,尽管后者提供了我需要的确切流程,但 LA 没有让我访问钥匙串,因此 LA 对我没有用

非常感谢提前

0 投票
1 回答
3148 浏览

objective-c - 在真实设备 iphone5s 上运行的 Xcode6-beta5 上的 Touch ID 构建错误

我正在使用 Xcode6-beta5 将触摸 ID 身份验证集成到我自己的应用程序中。在真实设备 iphone5s(iOS8-beta5) 上运行,使用以下代码。已经#import。

但是当我编译并运行它显示构建失败:

ld build/HWC.build/Debug-iphoneos/HWC.build/Objects-normal/armv7/HWC normal armv7 cd /Users/i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow export IPHONEOS_DEPLOYMENT_TARGET=8.0 export PATH="/ Applications/Xcode6-Beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode6-Beta5.app/Contents/Developer/usr/bin:/usr/bin:/bin:/ usr/sbin:/sbin" /Applications/Xcode6-Beta5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Applications/Xcode6-Beta5.app/Contents/Developer/Platforms /iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk -L/Users/i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow/build/Debug-iphoneos -F/Users/i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow/build/Debug-iphoneos -文件列表 /Users/i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow/build/HWC.build/Debug-iphoneos/HWC.build/Objects-normal/armv7/HWC.LinkFileList -Xlinker -map -Xlinker /Users/ i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow/build/HWC.build/Debug-iphoneos/HWC.build/HWC-LinkMap-normal-armv7.txt -dead_strip -all_load ../../../ Pioneer/MOClients/iPhone/build/Debug-iphoneos/libMO.a ../../../Pioneer/Robie/Device/iPhone/Datavault/build/Debug-iphoneos/libDatavault.a ../../. ./TPTools/iOS/afaria/libs/Debug-iphoneos/libAfariaSLL.a ../../../TPTools/PhoneGap/iOS/CordovaLib/build/Debug-iphoneos/libCordova.a ../../. ./TPTools/iOS/ClientUtil/Libraries/Debug-iphoneos/libsupClientUtil.a ../../../TPTools/iOS/ClientUtil/Libraries/Debug-iphoneos/libSUPSupportability.a ../../../TPTools/iOS/ClientUtil/Libraries/Debug-iphoneos/libPerformanceLib.a 。 ./../../Pioneer/Robie/Device/iPhone/Widgets/HWCLib/build/Debug-iphoneos/libHWC.a ../../../TPTools/OpenSSL/iOS/Debug-iphoneos/libcrypto。 a -fobjc-link-runtime -miphoneos-version-min=8.0 -lstdc++.6.0.9 -framework CoreTelephony -lz.1.2.5 -lstdc++ -framework CoreGraphics -framework CFNetwork -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework UIKit -licucore.A -framework AddressBook -framework CoreMedia -framework AudioToolbox -framework AVFoundation -framework CoreLocation -framework AddressBookUI -framework SystemConfiguration -Xlinker -dependency_info -Xlinker /Users/i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow /构建/硬件。build/Debug-iphoneos/HWC.build/Objects-normal/armv7/HWC_dependency_info.dat -o /Users/i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow/build/HWC.build/Debug-iphoneos/HWC。构建/对象-正常/armv7/HWC

架构 armv7 的未定义符号:“_OBJC_CLASS_$_LAContext”,引用自:HWCAppDelegate.o ld 中的 objc-class-ref:未找到架构 armv7 的符号:错误:链接器命令失败,退出代码为 1(使用 -v查看调用)

ld build/HWC.build/Debug-iphoneos/HWC.build/Objects-normal/arm64/HWC normal arm64 cd /Users/i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow export IPHONEOS_DEPLOYMENT_TARGET=8.0 export PATH="/ Applications/Xcode6-Beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode6-Beta5.app/Contents/Developer/usr/bin:/usr/bin:/bin:/ usr/sbin:/sbin" /Applications/Xcode6-Beta5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -isysroot /Applications/Xcode6-Beta5.app/Contents/Developer/Platforms /iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk -L/Users/i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow/build/Debug-iphoneos -F/Users/i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow/build/Debug-iphoneos -文件列表 /Users/i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow/build/HWC.build/Debug-iphoneos/HWC.build/Objects-normal/arm64/HWC.LinkFileList -Xlinker -map -Xlinker /Users/ i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow/build/HWC.build/Debug-iphoneos/HWC.build/HWC-LinkMap-normal-arm64.txt -dead_strip -all_load ../../../ Pioneer/MOClients/iPhone/build/Debug-iphoneos/libMO.a ../../../Pioneer/Robie/Device/iPhone/Datavault/build/Debug-iphoneos/libDatavault.a ../../. ./TPTools/iOS/afaria/libs/Debug-iphoneos/libAfariaSLL.a ../../../TPTools/PhoneGap/iOS/CordovaLib/build/Debug-iphoneos/libCordova.a ../../. ./TPTools/iOS/ClientUtil/Libraries/Debug-iphoneos/libsupClientUtil.a ../../../TPTools/iOS/ClientUtil/Libraries/Debug-iphoneos/libSUPSupportability.a ../../../TPTools/iOS/ClientUtil/Libraries/Debug-iphoneos/libPerformanceLib.a 。 ./../../Pioneer/Robie/Device/iPhone/Widgets/HWCLib/build/Debug-iphoneos/libHWC.a ../../../TPTools/OpenSSL/iOS/Debug-iphoneos/libcrypto。 a -fobjc-link-runtime -miphoneos-version-min=8.0 -lstdc++.6.0.9 -framework CoreTelephony -lz.1.2.5 -lstdc++ -framework CoreGraphics -framework CFNetwork -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework UIKit -licucore.A -framework AddressBook -framework CoreMedia -framework AudioToolbox -framework AVFoundation -framework CoreLocation -framework AddressBookUI -framework SystemConfiguration -Xlinker -dependency_info -Xlinker /Users/i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow /构建/硬件。build/Debug-iphoneos/HWC.build/Objects-normal/arm64/HWC_dependency_info.dat -o /Users/i307466/Downloads/OneBridge/trunk/Apps/iPhone/WorkFlow/build/HWC.build/Debug-iphoneos/HWC。构建/对象-正常/arm64/HWC

架构 arm64 的未定义符号:“_OBJC_CLASS_$_LAContext”,引用自:HWCAppDelegate.o ld 中的 objc-class-ref:未找到架构 arm64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v查看调用)

0 投票
4 回答
32303 浏览

ios - 有没有办法在 iOS 模拟器上使用苹果的 Touch ID(指纹扫描仪)?

我正在开发一个需要 Touch ID 身份验证的应用程序,那么有什么方法可以在模拟器中使用 Touch ID(指纹扫描仪)吗?

另外,请分享一些使用 LocalAuthentication 框架的示例代码。

0 投票
1 回答
280 浏览

ios - 如果应用程序最小化,是否应该显示 touchID

我正在实现触摸 ID 来“解锁”我的应用程序,但我不确定我是否遇到了苹果错误或我需要自己处理的东西。如果我在 evaluatePolicy 加载 Touch ID 提示之前点击主页按钮并最小化我的应用程序,它会出现在主屏幕上。

![没有足够的声望显示截图,所以这里有一个链接] https://www.dropbox.com/s/zrhc60lx87ze7mt/IMG_0016.PNG

此策略的成功/失败/取消评估没有任何作用,但是当我重新进入应用程序并再次取消它时,touchID 似乎永远被禁用,直到我重新启动手机。

还有其他人遇到这个问题或有想法吗?

PS 有一个开放的雷达,永远不会从取消按钮点击返回 errSecUserCanceled,所以现在我陷入了我的 errSecAuthFailed 案例,这也可能是原因。

0 投票
6 回答
8391 浏览

ios - 如果添加了指纹,则 ios8 TouchID 检测

我正在研究 Apple 的 Touch ID,更准确地说是本地身份验证器。截至目前的文档非常稀疏。它主要是这样的:

取自https://developer.apple.com/documentation/localauthentication

使用指纹进行身份验证的想法很好。但如果我知道密码,我可以在设备中添加指纹。获取密码非常容易,就像您坐在受害者旁边的火车上,看着他/她输入密码一样。

我想使用指纹作为安全身份验证的一种方式,但希望能够检测自上次请求指纹以来是否添加了新指纹。

Apple 正在为 AppStore 做这件事。如果您想在 AppStore 中验证交易并且自上次交易以来添加了新指纹,AppStore 会请求您的 AppleId-Password。这是正常的行为,因为电话可能已被知道密码并添加自己的指纹以购买昂贵东西的其他人拿走。

我的问题:我能否检测到自上次使用本地身份验证器后是否添加了新指纹?

0 投票
2 回答
5106 浏览

ios - iOS 8 Touch ID 错误“需要用户交互”。

我一直致力于将 Touch ID 支持集成到我正在开发的应用程序中。然而,它的行为非常不一致。我看到的一个常见问题是在新的应用程序启动时它按预期工作,但是在后台应用程序并将其带到前台时,我收到了一个错误

它甚至没有多大意义(我从来没有看到过 touchid 警报)

我已经尝试在应用程序已经运行时显示 touchid 警报,当它刚刚出现时,似乎并不重要。它在初始应用程序启动后每次都会中断。

还有其他人遇到这个吗?

作为参考,这是我正在使用的代码:

0 投票
1 回答
1626 浏览

ios - SecItemAdd() 返回 errSecInteractionNotAllowed (-25308)

我将值存储到钥匙串的任何尝试都失败,错误代码为 errSecInteractionNotAllowed (-25308)。我一直在玩弄 Touch ID 和钥匙串,所以我可能更改了我不知道的权限,但我无法弄清楚我可以更改的任何可能导致此问题的内容。

在摆弄钥匙串之前,我能够成功地将值存储到钥匙串中,因此它可能是设备中某处的设置。如果它是一个设置,我需要一些帮助来发现我需要更改哪些内容才能再次将数据保存在钥匙串中。此外,我想要一些建议,以确保我在尝试之前可以保存到钥匙串。

0 投票
5 回答
8580 浏览

ios - iOS8 检查设备是否有 Touch ID

LAContext 具有检查设备是否可以评估触摸 ID 并给出错误消息的方法。问题是系统在两种情况下给出了相同的错误消息“LAErrorPasscodeNotSet”:

1) 如果用户有 Touch ID,但在设置中将其关闭(iPhone 5s 和 iOS8)

2) 如果设备没有 Touch ID (iPad with iOS8)

Q:如何查看设备是否支持Touch ID,但在设置中没有开启?

更新:

已就此错误 (ID# 18364575) 向 Apple 创建了票证并收到了答复:

"工程部门根据以下信息确定此问题的行为符合预期:

如果未设置密码,您将无法检测到 Touch ID 的存在。设置密码后,canEvaluatePolicy 最终将返回 LAErrorTouchIDNotAvailable 或 LAErrorTouchIdNotEnrolled,您将能够检测到 Touch ID 的存在/状态。

如果用户在带有 Touch ID 的手机上禁用了密码,他们知道他们将无法使用 Touch ID,因此应用程序不需要检测 Touch ID 的存在或推广基于 Touch ID 的功能。"

0 投票
2 回答
5589 浏览

ios - TouchID 调用 applicationWillResignActive 和 applicationDidBecomeActive

我想知道 Apple 是否打算使用 TouchID 功能调用这些生命周期方法。

是否有可能检查 touchID 进程是否正在调用这些方法(我想避免在应用程序委托中设置 BOOL 之类的东西,如果当前显示 touchID 输入则设置..)

br

0 投票
0 回答
1338 浏览

ios - 带有 PIN 后备的 Touch ID API

我们正在开发一个应用程序,我们使用 Touch ID 从钥匙串中读取一个秘密。

我们发现,当您立即从钥匙串中读取从钥匙串中读取时,如果第一次使用 PIN 码读取密钥,则第二次读取不会返回字符串值。如果用户第一次使用他们的指纹,第二次将出现 Touch ID 对话框,并且再次读取成功。

这是一个示例应用程序:https ://github.com/cnandreu/KeychainTouchIdError

下面是使用 KeychainTouchIdError 的演示应用程序的一些场景。这些必须在运行 iOS 8 且带有触摸 id 传感器的真实设备上执行。使用模拟器时,所有场景都按预期工作,因为从未出现过 Touch ID 对话框。

场景一(工作)

  • 将值存储在受 kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly 保护的钥匙串中。
  • 从钥匙串读取,使用指纹解锁。
  • 没有延迟。
  • 从钥匙串读取,使用指纹或 PIN 解锁。

场景 2(在设备上损坏):

  • 将值存储在受 kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly 保护的钥匙串中。
  • 从钥匙串中读取,使用 PIN 解锁。
  • 没有延迟。
  • 从钥匙串中读取。使用设备时,不显示触摸 ID 对话框,并且从钥匙串返回空字符串。但是,在使用模拟器时,存储在钥匙串中的值会被正确检索。

场景3(工作):

  • 将值存储在受 kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly 保护的钥匙串中。
  • 从钥匙串中读取,使用 PIN 解锁。
  • 等待 500 毫秒。
  • 从钥匙串中读取。用户会看到一个对话框,并且可以在使用他们的指纹或 PIN 后再次读取密码。

演示应用程序中可用的按钮

保存 - 将密钥写入受 kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly 保护的钥匙串。

读取 - 从钥匙串中读取一个秘密。

删除 - 从钥匙串中删除秘密。

快速 - 用于执行场景 1 和 2。

Quick with Delay - 用于执行场景 3。

注释

我们最好的猜测是,PIN 解锁动画(向下滑动并持续约 250 毫秒)干扰了第二次读取。指纹解锁时没有动画。这只是一个猜测。

关于我们为什么遇到场景 2 问题的任何想法?是否需要做任何事情来等待钥匙串再次“可读”?