PublicKeyCredential:getClientExtensionResults() 方法
PublicKeyCredential 接口的 getClientExtensionResults() 方法返回一个对象,该对象将凭据创建或身份验证期间请求的扩展的标识符映射到它们被用户代理处理后的结果。
在创建或获取 PublicKeyCredential(分别通过 navigator.credentials.create() 和 navigator.credentials.get())时,可以通过 publicKey 选项的 extensions 属性请求客户端进行“自定义”处理不同的扩展。有关请求不同扩展的更多信息,请参阅 Web 身份验证扩展。
注意: getClientExtensionResults() 仅返回由用户代理(客户端)处理的扩展的结果。由身份验证器处理的扩展的结果可以在 身份验证器数据 中找到,该数据可在 AuthenticatorAssertionResponse.authenticatorData 中获取。
语法
js
getClientExtensionResults()
参数
无。
返回值
一个对象,每个条目是扩展的标识符字符串作为键,以及客户端处理扩展的输出作为值。
异常
SecurityErrorDOMException-
RP 域无效。
示例
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 Authentication:访问公钥凭证的 API - 第 3 级 # dom-publickeycredential-getclientextensionresults |
浏览器兼容性
加载中…
注意: 扩展是可选的,不同的浏览器可能识别不同的扩展。客户端始终可以忽略处理扩展:如果浏览器不识别给定的扩展,它将直接忽略它。有关哪些浏览器支持哪些扩展的信息,请参阅 Web 身份验证扩展。
另见
- 当前定义的扩展列表
AuthenticatorAssertionResponse.authenticatorData,其中包含身份验证器扩展处理的结果