PublicKeyCredential: getClientExtensionResults() 方法

安全上下文:此功能仅在 安全上下文 (HTTPS) 中可用,在某些或所有 支持的浏览器 中可用。

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 身份验证扩展

另请参阅