iOS TouchID每次访问后如何强制重新授权,或者查看是否解锁?
How Do I Force An iOS TouchID To Re-Authorize After Each Access, or Check If It is Unlocked?
好的。我怀疑我只需要被引导到 "RTFM." 的适当 "M" 我不是 iOS 的新手,但对钥匙串使用相当陌生。我正在使用一个名为“FXKeychain”的很好的钥匙串包装器。“
我有一个包含登录名的应用程序,密码存储在默认钥匙串中。
我使用TouchID验证用户并填写密码。
为了做到这一点,我显示了一个 "thumbprint" 按钮,带有一个运行标准代码的 IBAction 处理程序:
self.s_authenticationContext.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: "Yo. Gimmie ur thumb.", reply: self.touchIDCallback)
问题是,一旦解锁,后续触摸按钮,使用上面的方法,跳过警报,简单地失败。
这是一个问题,因为显示的是同一个按钮,即使在用户通过验证之后也是如此。我想:
- 输入密码后重新锁定,所以用户每次都必须重新认证(首选),或者
- 显示一个不同的按钮图像,表示不再需要指纹。
这意味着我需要:
- 想办法重新锁定 TouchID,或者
- 查明用户是否已解锁。
有什么想法吗?
谢谢!
'unlocked' 是您的身份验证上下文,而不是钥匙串。如果您在调用 evaluatePolicy
之前分配一个新的身份验证上下文,那么将再次显示 touchID 对话框。
但是,您实际上可以使用 touchID 直接验证对钥匙串项的访问。 Apple 示例代码演示了如何执行此操作 - https://developer.apple.com/library/ios/samplecode/KeychainTouchID/Introduction/Intro.html#//apple_ref/doc/uid/TP40014530-Intro-DontLinkElementID_2
好的。我怀疑我只需要被引导到 "RTFM." 的适当 "M" 我不是 iOS 的新手,但对钥匙串使用相当陌生。我正在使用一个名为“FXKeychain”的很好的钥匙串包装器。“
我有一个包含登录名的应用程序,密码存储在默认钥匙串中。
我使用TouchID验证用户并填写密码。
为了做到这一点,我显示了一个 "thumbprint" 按钮,带有一个运行标准代码的 IBAction 处理程序:
self.s_authenticationContext.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: "Yo. Gimmie ur thumb.", reply: self.touchIDCallback)
问题是,一旦解锁,后续触摸按钮,使用上面的方法,跳过警报,简单地失败。
这是一个问题,因为显示的是同一个按钮,即使在用户通过验证之后也是如此。我想:
- 输入密码后重新锁定,所以用户每次都必须重新认证(首选),或者
- 显示一个不同的按钮图像,表示不再需要指纹。
这意味着我需要:
- 想办法重新锁定 TouchID,或者
- 查明用户是否已解锁。
有什么想法吗?
谢谢!
'unlocked' 是您的身份验证上下文,而不是钥匙串。如果您在调用 evaluatePolicy
之前分配一个新的身份验证上下文,那么将再次显示 touchID 对话框。
但是,您实际上可以使用 touchID 直接验证对钥匙串项的访问。 Apple 示例代码演示了如何执行此操作 - https://developer.apple.com/library/ios/samplecode/KeychainTouchID/Introduction/Intro.html#//apple_ref/doc/uid/TP40014530-Intro-DontLinkElementID_2