问题描述
因此尝试集成WebAuthN。并且,如果要更轻松地检查与平台无关的(FIDO2安全密钥)(一般是否支持webauthN-我们继续进行,也许以后再插入USB密钥),我将找不到一种方法来检查与平台无关的方法(Windows Hello,指纹扫描仪等)验证者。 isUserVerifyingPlatformAuthenticatorAvailable()
看起来很满足,但
window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
.then(() => true)
.catch(() => false)
.then((x) => console.log(x))
对于我的MacBook(Chrome,Firefox,Safari)始终返回true。此外MacBook没有任何身份验证器,并尝试进行参数
"authenticatorSelection": {
"authenticatorAttachment" : "platform","requireResidentKey":false,"userVerification":"preferred"
}
最终显示为“此设备不支持此网站要求的安全密钥类型。”消息(我的MacBook绝对没有指纹扫描仪,所以这很合理!)
看到了similar questions,但只有使用此isUserVerifyingPlatformAuthenticatorAvailable()
的建议。
解决方法
isUserVerifyingPlatformAuthenticatorAvailable()
返回布尔值的Promise,因此您的代码应类似于:
window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
.then(isAvailable => isAvailable)
.catch(err => false)
.then(result => console.log("Platform authenticator is available: " + result));