如何强制iOS TouchID在每次访问后重新授权,或检查是否已解锁?

Chr*_*all 3 keychain ios touch-id

好.我怀疑我只需要指向"RTFM"的相应"M".我不是iOS的新手,但对于钥匙串使用来说还算新手.我正在使用一个名为" FXKeychain " 的好钥匙扣包装器.

我有一个包含登录的应用程序,密码存储在默认钥匙串中.

我使用TouchID验证用户并填写密码.

为了做到这一点,我显示了一个"指纹"按钮,带有运行标准代码的IBAction处理程序:

self.s_authenticationContext.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: "Yo. Gimmie ur thumb.", reply: self.touchIDCallback)
Run Code Online (Sandbox Code Playgroud)

问题是,一旦解锁,按钮的后续触摸,使用上面的,跳过警报,然后简单地通过.

这是一个问题,因为即使在验证用户之后,也会显示相同的按钮.我想要:

  1. 输入密码后重新锁定,因此用户必须每次(首选)重新进行身份验证,或
  2. 显示不同的按钮图像,指示不再需要指纹.

这意味着我需要:

  1. 找到一种方法来重新锁定TouchID,或
  2. 找出用户是否已解锁.

有任何想法吗?

谢谢!

Pau*_*w11 6

它是您的身份验证上下文,而不是"已解锁"的钥匙串.如果在调用之前分配新的身份验证上下文,evaluatePolicy则将再次显示touchID对话框.

但是,您可以实际使用touchID直接验证对钥匙串项的访问.Apple示例代码演示了如何执行此操作 - https://developer.apple.com/library/ios/samplecode/KeychainTouchID/Introduction/Intro.html#//apple_ref/doc/uid/TP40014530-Intro-DontLinkElementID_2