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

时间:2015-06-24 11:56:56

标签: ios keychain touch-id

行。我怀疑我只需要指向“RTFM”的相应“M”。我不是iOS的新手,但对于钥匙串使用来说还算新手。我正在使用名为“FXKeychain”的好钥匙串包装。

我的应用程序包含登录名,密码存储在默认钥匙串中。

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

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

self.s_authenticationContext.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: "Yo. Gimmie ur thumb.", reply: self.touchIDCallback)

问题是,一旦解锁,按钮的后续触摸,使用上面的内容,跳过警报,然后直接通过。

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

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

    1. 找到重新锁定TouchID的方法,或
    2. 查明用户是否已解锁。
    3. 有什么想法吗?

      谢谢!

1 个答案:

答案 0 :(得分:6)

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

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