PublicKeyCredential: toJSON() メソッド
Baseline
2025
最近利用可能
March 2025以降、この機能は最新のバージョンの端末およびブラウザーで動作します。古い端末やブラウザーでは動作しないことがあります。
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
toJSON() は PublicKeyCredential インターフェイスのメソッドで、PublicKeyCredential の JSON 形式の表現を返します。
返されるオブジェクトのプロパティは、キーペアの作成とユーザーの登録の際に navigator.credentials.create() によって返されたものか、あるいはユーザーの認証の際に navigator.credentials.get() によって返されたものかによって異なります。
このメソッドは、ウェブアプリのコードが JSON.stringify() を呼び出して PublicKeyCredential をシリアライズし、ユーザーの登録や認証の際に認証依頼者サーバーへ送信できるようにする際に、自動的に呼び出されます。
ウェブアプリコード内で直接呼び出すことを意図したものではありません。
構文
toJSON()
引数
なし。
返値
PublicKeyCredential オブジェクトの JSON 形式の表現です。
含まれるプロパティは、その資格情報が登録時に navigator.credentials.create() によって返されたものか、ユーザーの認証時に navigator.credentials.get() によって取得されたものかによって異なります。
含まれるプロパティの値と型は、PublicKeyCredential と同じですが、バッファープロパティの代わりに base64url でエンコードされた文字列が使用される点が異なります。
オブジェクトのプロパティは以下の通りです。
id-
PublicKeyCredential.idで返される値です。 rawId-
PublicKeyCredential.rawIdを base64url で符号化したもの。 authenticatorAttachment省略可type-
文字列
"public-key"。 clientExtensionResults-
PublicKeyCredential.getClientExtensionResults()から返される値を base64url で符号化したものの配列。 response-
response プロパティのオブジェクトは、登録操作または認証操作の後に資格情報が返されるかどうかによって異なります。
-
新しいユーザーを登録する際、
responseはAuthenticatorAttestationResponseの JSON 形式の表現となり、バッファーの値は base64url で符号化されています。 -
ユーザーを認証する際、返される値は
AuthenticatorAssertionResponseの JSON 形式の表現となり、バッファーの値は base64url で符号化されています。
-
例外
SecurityErrorDOMException-
RP のドメインが有効ではありません。
例
新しいユーザーを登録する際、認証依頼者のサーバーは、期待される資格情報に関する情報をウェブアプリに提供します。
ウェブアプリは、受け取った情報(下記の createCredentialOptions)を引数としてnavigator.credentials.create()を呼び出し、新しい資格情報(PublicKeyCredential)を返すプロミスを取得します。
const newCredentialInfo = await navigator.credentials.create({
createCredentialOptions,
});
その後、ウェブアプリは JSON.stringify() (これは toJSON() を呼び出します)を使用して、返された資格情報をシリアライズし、それをサーバーに POST で送信します。
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> |