【问题标题】:How to handle the biometric prompt after lockout error?锁定错误后如何处理生物识别提示?
【发布时间】:2019-12-19 01:52:31
【问题描述】:

我正在使用生物识别提示来验证我的应用程序上的客户端。我遇到的问题是:在我使用错误的指纹 5 次后,我得到了将 API 锁定 30 秒的 ERR_LOCKOUT。在那之后,我一直收到锁定错误,即使我只是尝试创建生物识别提示信息而不使用手指进行身份验证。如何让应用更稳定?我需要在这 30 秒内使用处理程序还是有其他方法?

P.S:收到错误后,我使用身份验证取消回调并返回错误

【问题讨论】:

  • 锁定时间要求至少 30秒。但它可能会更高,而且我不知道有什么方法可以向系统询问确切的值。因此,您可以做的最好的事情可能是阻止用户在获得ERR_LOCKOUT 后的 30 秒内进行任何进一步的身份验证尝试。
  • 好的,我明白了!我会尝试这样做

标签: android android-biometric-prompt


【解决方案1】:

您是否遵循博文blogPost1blogPost2 中的建议?如果没有,建议遵循这些模式。关于ERROR_LOCKOUT,文档中写道

/**
 * The operation was canceled because the API is locked out due to too many attempts.
 * This occurs after 5 failed attempts, and lasts for 30 seconds.
 */
int ERROR_LOCKOUT = 7;

您可以通过多种方式在代码中处理此问题:

  1. 您可以告诉用户在 30 秒后重试
  2. 或者您可以将按钮设为灰色并告诉用户在 30 秒后重试 - 然后在 30 秒后重新启用按钮。

确切地说,您应该只在调用 authenticate() 而不是在尝试创建 PromptInfo 时收到此错误。

【讨论】:

  • 请仔细检查您在 PromptInfo 创建期间没有收到错误。如果您确实在那里遇到错误,请在此处分享您的代码。
  • 对我来说 onAuthenticationError(errorCode: Int, errString: CharSequence) 只返回错误代码 10 - 操作已取消。不知道为什么没有返回其他错误,可能是因为我使用的是BiometricPrompt.PromptInfo.Builder().setDeviceCredentialAllowed(true)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多