在 Android 中检查凭据是否存在而不提示输入指纹

Check if credential exists without prompting for fingerprint in Android

是否有 API 或其他方法来确定设备上是否存在不需要在 Android 中先采集指纹的凭据?

目前,我可以使用特定的凭证 ID 调用 getSignPendingIntent(PublicKeyCredentialRequestOptions),然后系统会提示我使用指纹。提供我的指纹后,如果设备上不存在凭据,我将收到返回的错误响应;如果存在,我将收到成功响应。

是否有其他方法可以确定设备上是否存在凭据?

需要知道这一点的一个原因是客户是否在设备 A 上注册了凭据,但随后访问了设备 B 上的网站。如果他们在设备 B 上,我不想提示他们输入指纹以了解他们是否可以使用他们的 WebAuthN 凭证。我想先检查凭据是否存在,否则回退到标准身份验证方法。

没有办法 100% 确定。目前最好的解决方案是将 credential id 存储在创建它的本地存储(或 cookie)中。这样,您可以检查是否应该在该设备上(即在该浏览器中)提供指纹登录(又名平台身份验证器)选项。

FIDO Alliance 和 W3C WebAuthn WG 已经尝试改变这一点,但到目前为止还没有完成,主要是出于隐私原因。