我在https://passkeys.dev/docs/use-cases/bootstrapping/#authenticating-the-user上浏览' bootstrapping '部分,在尝试遵循时出现错误:
输入图片描述
我使用的是Brave 1.45.133 Chromium: 107.0.5304.141
我试着运行
const isCMSupported =
PublicKeyCredential.isConditionalMediationSupported();
console.log({ isCMSupported });
和我期望的真或假,但却得到了一个错误
Uncaught TypeError: PublicKeyCredential。isConditionalMediationSupported不是一个函数
因为isConditionalMediationAvailable()
方法是一个"最近的";此外,它可能无法在所有浏览器中使用。在得到更广泛的采用之前,您将需要扩展检查的逻辑:
- 方法是否可用
- 如果可用,返回值是多少
如果方法不可用,则可以假设条件中介也不可用。
您可以使用下面的代码——它不像isConditionalMediationAvailable()
提供的单行代码那样优雅,但是在被广泛采用之前是必要的。
const mediationAvailable = () => {
const pubKeyCred = PublicKeyCredential;
// Check if the function exists on the browser - Not safe to assume as the page will crash if the function is not available
//typeof check is used as browsers that do not support mediation will not have the 'isConditionalMediationAvailable' method available
if (
typeof pubKeyCred.isConditionalMediationAvailable === "function" &&
pubKeyCred.isConditionalMediationAvailable()
) {
console.log("Conditional Mediation is available");
return true;
}
console.log("Conditional Mediation is not available");
return false;
};