PublicKeyCredential: toJSON() 方法
PublicKeyCredential 介面的 toJSON() 方法返回一個 PublicKeyCredential 的 JSON 型別表示。
返回物件的屬性取決於憑證是由 navigator.credentials.create() 在建立金鑰對並註冊使用者時返回的,還是由 navigator.credentials.get() 在驗證使用者時返回的。
當 Web 應用程式碼呼叫 JSON.stringify() 來序列化 PublicKeyCredential 以便在註冊或驗證使用者時傳送到信賴方伺服器時,此方法會被自動呼叫。它不打算在 Web 應用程式碼中直接呼叫。
語法
toJSON()
引數
無。
返回值
PublicKeyCredential 物件的 JSON 型別表示。
包含的屬性取決於憑證是在註冊時由 navigator.credentials.create() 返回的,還是在驗證使用者時由 navigator.credentials.get() 返回的。包含屬性的值和型別與 PublicKeyCredential 相同,不同之處在於使用 base64url 編碼的字串來代替 buffer 屬性。
物件屬性包括:
id-
PublicKeyCredential.id返回的值。 rawId-
PublicKeyCredential.rawId的 base64url 編碼版本。 authenticatorAttachment可選type-
字串
"public-key"。 clientExtensionResults-
一個數組,包含
PublicKeyCredential.getClientExtensionResults()返回的值的 base64url 編碼版本。 response-
response 屬性物件取決於憑證是在註冊操作還是認證操作後返回的。
-
在註冊新使用者時,
response將是AuthenticatorAttestationResponse的 JSON 型別表示,其中 buffer 值已被 base64url 編碼。 -
在驗證使用者時,返回的值將是
AuthenticatorAssertionResponse的 JSON 型別表示版本,其中 buffer 值已被 base64url 編碼。
-
異常
SecurityErrorDOMException-
RP 域無效。
示例
在註冊新使用者時,信賴方伺服器會將有關預期憑證的資訊提供給 Web 應用。Web 應用使用收到的資訊(如下面的 createCredentialOptions)呼叫 navigator.credentials.create(),該呼叫返回一個以新的憑證(一個 PublicKeyCredential)完成的 Promise。
const newCredentialInfo = await navigator.credentials.create({
createCredentialOptions,
});
然後,Web 應用使用 JSON.stringify()(這反過來會呼叫 toJSON())序列化返回的憑證,並將其釋出回伺服器。
const registration_url = "https://example.com/registration";
const apiRegOptsResp = await fetch(registration_url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(newCredentialInfo), // Calls newCredentialInfo.toJSON
});
規範
| 規範 |
|---|
| Web Authentication:訪問公鑰憑證的 API - 第 3 級 # dom-publickeycredential-tojson |
瀏覽器相容性
載入中…