当我尝试使用 WebAuthn 登录时navigator.credentials.get()
。我需要在属性上推送一些值,allowCredentials
因为 Chrome Mobile 它不允许为空allowCredentials
。困难的部分在transports
属性内部,因为根据 Mozilla 文档,它是一个字符串数组。我有一个只有一个字符串 = 的数组internal
,因为我不需要 USB 或其他任何东西。
credencialesPermitidas.push({
id: base64ArrayBuffer.decode(id),
type: "public-key",
transports: ["internal"]
});
navigator.credentials
.get({
publicKey: {
rpId: "localhost",
challenge: base64ArrayBuffer.decode(response.data.result),
userVerification: "discouraged",
allowCredentials: credencialesPermitidas,
timeout: 60000
}
})
使用这些配置,一切正常,但是当进程完成身份验证时,结果是一个错误:
如果transports
为空,则该过程需要USB Key...我不明白这一点。