PublicKeyCredential: phương thức toJSON()
Baseline
2025
Newly available
Since March 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Phương thức toJSON() của giao diện PublicKeyCredential trả về JSON type representation của PublicKeyCredential.
Các thuộc tính của đối tượng được trả về phụ thuộc vào việc thông tin xác thực được trả về bởi navigator.credentials.create() khi tạo cặp khóa và đăng ký người dùng, hay navigator.credentials.get() khi xác thực người dùng.
Phương thức này được tự động gọi khi code ứng dụng web gọi JSON.stringify() để tuần tự hóa PublicKeyCredential để có thể gửi đến máy chủ relying party khi đăng ký hoặc xác thực người dùng.
Phương thức này không có ý định được gọi trực tiếp trong code ứng dụng web.
Cú pháp
toJSON()
Tham số
Không có.
Giá trị trả về
JSON type representation của đối tượng PublicKeyCredential.
Các thuộc tính được bao gồm phụ thuộc vào việc thông tin xác thực được trả về bởi navigator.credentials.create() khi đăng ký, hay navigator.credentials.get() khi xác thực người dùng.
Các giá trị và loại của các thuộc tính được bao gồm giống như của PublicKeyCredential, ngoại trừ các chuỗi được mã hóa base64url được dùng thay cho các thuộc tính buffer.
Các thuộc tính của đối tượng là:
id-
Giá trị được trả về bởi
PublicKeyCredential.id. rawId-
Phiên bản được mã hóa base64url của
PublicKeyCredential.rawId. authenticatorAttachmentOptional-
Giá trị được trả về bởi
PublicKeyCredential.authenticatorAttachment. type-
Chuỗi
"public-key". clientExtensionResults-
Một mảng chứa các phiên bản được mã hóa base64url của các giá trị được trả về bởi
PublicKeyCredential.getClientExtensionResults(). response-
Đối tượng thuộc tính response phụ thuộc vào việc thông tin xác thực được trả về sau thao tác đăng ký hay xác thực.
-
Khi đăng ký người dùng mới,
responsesẽ là biểu diễn kiểu JSON củaAuthenticatorAttestationResponsetrong đó các giá trị buffer đã được mã hóa base64url. -
Khi xác thực người dùng, giá trị được trả về sẽ là phiên bản biểu diễn kiểu JSON của
AuthenticatorAssertionResponsetrong đó các giá trị buffer đã được mã hóa base64url.
-
Ngoại lệ
SecurityErrorDOMException-
Miền RP không hợp lệ.
Ví dụ
Khi đăng ký người dùng mới, máy chủ relying party sẽ cung cấp thông tin về thông tin xác thực dự kiến cho ứng dụng web.
Ứng dụng web gọi navigator.credentials.create() với thông tin nhận đư��c (createCredentialOptions bên dưới), trả về một promise được thực hiện với thông tin xác thực mới (một PublicKeyCredential).
const newCredentialInfo = await navigator.credentials.create({
createCredentialOptions,
});
Ứng dụng web sau đó tuần tự hóa thông tin xác thực được trả về bằng JSON.stringify() (gọi toJSON()) và đăng nó trở lại máy chủ.
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
});
Thông số kỹ thuật
| Specification |
|---|
| Web Authentication: An API for accessing Public Key Credentials - Level 3> # dom-publickeycredential-tojson> |