iOS Touch ID - 我应该选择本地身份验证 API 还是钥匙串访问 API?

iOS Touch ID- Should I choose local authentication API or keychain access API?

我们有一个现有的 iOS 应用程序,其中基于 username/password 的身份验证过程已经到位。现在,我们计划集成Biometric/Touch 身份验证。以下是我们的要求很短-

  1. 使用指纹验证代替现有的 username/password 登录
  2. 如果用户取消触控 ID 弹出窗口或指纹扫描失败或设备不支持触控 ID,则回退到现有的基于 username/password 的登录页面。

  3. 我们还想在设备上存储用户名和密码,以便我们可以在用户完成生物认证后触发 auth web 服务。

我们知道有两种可能的方法可以在 iOS 中实现 Touch ID,即 本地身份验证 (LAContext)带 Touch 的钥匙串服务ID 保护(使用访问控制列表)

我们首先想到我们将实施本地身份验证方法并使用钥匙串单独存储用户凭据。但由于我们需要在设备上存储用户凭据,钥匙串访问控制列表是否是更好的方法?

我不太清楚应该使用哪种方法以及哪种方法最适合我们。任何有这方面知识的人请帮助我做出决定。如果您需要任何特定信息,请在评论中告诉我。

我会向您推荐钥匙串解决方案。钥匙串中的凭据将受 TouchID 保护。当有人破解您的应用程序时,对凭据的访问仍将受到用户指纹的保护。

我不建议您将密码保存在钥匙串中。至少保存密码哈希或最好保存登录令牌。