我正在开发一个示例 Node js 应用程序来在 Windows 10 上使用 webauthn。
challenge: challenge,
rp: {
name: "Example CORP",
id : "localhost"
},
user: {
id: new Uint8Array(16),
name: "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="acc6c8c3c9ecc9d4cdc1dcc0c982cfc3c1" rel="noreferrer noopener nofollow">[email protected]</a>",
displayName: "John Doe"
},
pubKeyCredParams: [
{
type: "public-key",
alg: -7
}
],authenticatorSelection: {
authenticatorAttachment: "platform" //cross-platform is working fine
},
timeout: 60000
};
const credential = navigator.credentials.create({
publicKey: publicKey
});
我确实收到了以下错误,并且没有看到任何 Windows Hello 模式窗口。
login:32 publicKey.authenticatorSelection.userVerification was not set to any value in Web Authentication navigator.credentials.create() call. This defaults to 'preferred', which is probably not what you want. If in doubt, set to 'discouraged'. See https://chromium.googlesource.com/chromium/src/+/master/content/browser/webauth/uv_preferred.md for details
我还缺少任何其他参数吗?
-- 湿婆
最佳答案
您没有在 authenticatorSelection
对象中定义 userVerification
属性。
来自 W3.org :
Let
userVerification
be the effective user verification requirement for the assertion:
is set to required Let
userVerification
be true.
is set to discouraged Let
userVerification
be false.
is set to preferred If the authenticator is capable of user verification Let
userVerification
be true. if the authenticator not capable of user verification LetuserVerification
be false.
authenticatorSelection: {
authenticatorAttachment: "platform",
userVerification: "required"
},
关于node.js - Webauthn - Windows Hello 验证器选择不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69611717/