このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

PublicKeyCredential: getClientExtensionResults() メソッド

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2021年9月以降、すべてのブラウザーで利用可能です。

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

getClientExtensionResults()PublicKeyCredential インターフェイスのメソッドで、資格情報の作成または認証の際にリクエストされた拡張機能の識別子と、ユーザーエージェントによる処理後の結果を割り当てたオブジェクトを返します。

PublicKeyCredential の作成または取得時(navigator.credentials.create() および navigator.credentials.get() を通じて)PublicKeyCredential を作成または取得する際、publicKey オプションの extensions プロパティで指定されたさまざまな拡張機能に対して、クライアントによる「独自の」処理をリクエストできます。さまざまな拡張機能のリクエストに関する情報は、ウェブ認証の拡張機能を参照してください。

メモ: getClientExtensionResults() は、ユーザーエージェント(クライアント)によって処理された拡張機能の結果のみを返します。認証器によって処理された拡張機能の結果は、AuthenticatorAssertionResponse.authenticatorData で利用できる認証器データ内に得られます。

構文

js
getClientExtensionResults()

引数

なし。

返値

それぞれの項目のキーが拡張機能の識別子文字列、値がクライアントによるその拡張機能の処理結果となるオブジェクト。

例外

SecurityError DOMException

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: An API for accessing Public Key Credentials - Level 3
# dom-publickeycredential-getclientextensionresults

ブラウザーの互換性

メモ: 拡張子は任意であり、さまざまなブラウザーで認識される拡張子が異なる場合があります。クライアント側での拡張子の処理は常に任意です。ブラウザーが指定された拡張子を認識しない場合、その拡張子は単に無視されます。どのブラウザーがどの拡張子を対応しているかについては、ウェブ認証の拡張機能を参照してください。

関連情報