PublicKeyCredential: getClientExtensionResults() 方法
getClientExtensionResults()
方法是 PublicKeyCredential
接口的方法,它返回一个映射,映射中包含在凭据创建或身份验证期间请求的扩展的标识符,以及它们在用户代理处理后的结果。
在创建或获取 PublicKeyCredential
(分别通过 navigator.credentials.create()
和 navigator.credentials.get()
)时,可以请求客户端对不同扩展进行“自定义”处理,这些扩展在 publicKey
选项的 extensions
属性中指定。您可以在 Web 身份验证扩展 中找到有关请求不同扩展的更多信息。
注意:getClientExtensionResults()
仅返回用户代理(客户端)处理的扩展的结果。在 身份验证器数据 中可用的 AuthenticatorAssertionResponse.authenticatorData
中可以找到身份验证器处理的扩展的结果。
语法
js
getClientExtensionResults()
参数
无。
返回值
一个 map
,其中每个条目都是一个扩展的标识符字符串作为键,以及客户端处理扩展的输出作为值。
示例
js
const publicKey = {
// Here are the extension "inputs"
extensions: {
appid: "https://accounts.example.com",
},
allowCredentials: {
id: "fgrt46jfgd...",
transports: ["usb", "nfc"],
type: "public-key",
},
challenge: new Uint8Array(16) /* from the server */,
};
navigator.credentials
.get({ publicKey })
.then((publicKeyCred) => {
const myResults = publicKeyCred.getClientExtensionResults();
// myResults will contain the output of processing the "appid" extension
})
.catch((err) => {
console.error(err);
});
规范
规范 |
---|
Web 身份验证:访问公钥凭据的 API - 第 3 级 # ref-for-dom-publickeycredential-getclientextensionresults |
浏览器兼容性
BCD 表格仅在浏览器中加载
注意:扩展是可选的,不同的浏览器可能识别不同的扩展。客户端始终可以选择是否处理扩展:如果浏览器不识别某个扩展,它将直接忽略它。有关哪些浏览器支持哪些扩展的信息,请参阅 Web 身份验证扩展。
另请参阅
- 当前定义的扩展列表
-
AuthenticatorAssertionResponse.authenticatorData
,其中包含身份验证器处理扩展的结果