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

View in English Always switch to English

PublicKeyCredential: toJSON() メソッド

Baseline 2025
最近利用可能

March 2025以降、この機能は最新のバージョンの端末およびブラウザーで動作します。古い端末やブラウザーでは動作しないことがあります。

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

toJSON()PublicKeyCredential インターフェイスのメソッドで、PublicKeyCredentialJSON 形式の表現を返します。

返されるオブジェクトのプロパティは、キーペアの作成とユーザーの登録の際に navigator.credentials.create() によって返されたものか、あるいはユーザーの認証の際に navigator.credentials.get() によって返されたものかによって異なります。

このメソッドは、ウェブアプリのコードが JSON.stringify() を呼び出して PublicKeyCredential をシリアライズし、ユーザーの登録や認証の際に認証依頼者サーバーへ送信できるようにする際に、自動的に呼び出されます。 ウェブアプリコード内で直接呼び出すことを意図したものではありません。

構文

js
toJSON()

引数

なし。

返値

PublicKeyCredential オブジェクトの JSON 形式の表現です。

含まれるプロパティは、その資格情報が登録時に navigator.credentials.create() によって返されたものか、ユーザーの認証時に navigator.credentials.get() によって取得されたものかによって異なります。 含まれるプロパティの値と型は、PublicKeyCredential と同じですが、バッファープロパティの代わりに base64url でエンコードされた文字列が使用される点が異なります。

オブジェクトのプロパティは以下の通りです。

id

PublicKeyCredential.id で返される値です。

rawId

PublicKeyCredential.rawIdbase64url で符号化したもの。

authenticatorAttachment 省略可

PublicKeyCredential.authenticatorAttachment から返される値。

type

文字列 "public-key"

clientExtensionResults

PublicKeyCredential.getClientExtensionResults() から返される値を base64url で符号化したものの配列。

response

response プロパティのオブジェクトは、登録操作または認証操作の後に資格情報が返されるかどうかによって異なります。

例外

SecurityError DOMException

RP のドメインが有効ではありません。

新しいユーザーを登録する際、認証依頼者のサーバーは、期待される資格情報に関する情報をウェブアプリに提供します。 ウェブアプリは、受け取った情報(下記の createCredentialOptions)を引数としてnavigator.credentials.create()を呼び出し、新しい資格情報(PublicKeyCredential)を返すプロミスを取得します。

js
const newCredentialInfo = await navigator.credentials.create({
  createCredentialOptions,
});

その後、ウェブアプリは JSON.stringify() (これは toJSON() を呼び出します)を使用して、返された資格情報をシリアライズし、それをサーバーに POST で送信します。

js
const registrationURL = "https://example.com/registration";
const apiRegOptsResp = await fetch(registrationURL, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify(newCredentialInfo), // Calls newCredentialInfo.toJSON
});

仕様書

仕様書
Web Authentication: An API for accessing Public Key Credentials - Level 3
# dom-publickeycredential-tojson

ブラウザーの互換性

関連情報