Thuộc tính clientDataJSON của AuthenticatorResponse
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Thuộc tính clientDataJSON của giao diện AuthenticatorResponse lưu trữ một chuỗi JSON trong một ArrayBuffer, biểu diễn dữ liệu client đã được truyền vào navigator.credentials.create() hoặc navigator.credentials.get(). Thuộc tính này chỉ được truy cập trên một trong các đối tượng con của AuthenticatorResponse, cụ thể là AuthenticatorAttestationResponse hoặc AuthenticatorAssertionResponse.
Giá trị
Một ArrayBuffer.
Thuộc tính thể hiện
Sau khi đối tượng clientDataJSON được chuyển đổi từ ArrayBuffer sang một đối tượng JavaScript, nó sẽ có các thuộc tính sau:
challenge-
Phiên bản được mã hóa theo base64url của challenge mật mã được gửi từ máy chủ của relying party. Giá trị gốc được truyền dưới dạng tùy chọn
challengetrongCredentialsContainer.get()hoặcCredentialsContainer.create(). crossOriginOptional-
Một giá trị Boolean. Nếu được đặt thành
true, điều đó có nghĩa là ngữ cảnh gọi là một<iframe>không cùng nguồn gốc với các khung tổ tiên của nó. origin-
Nguồn gốc đầy đủ của relying party đã được client/trình duyệt cung cấp cho authenticator. Ta nên kỳ vọng rằng id của relying party là hậu tố của giá trị này.
tokenBindingOptional Deprecated-
Một đối tượng mô tả trạng thái của giao thức token binding cho giao tiếp với relying party. Nó có hai thuộc tính:
status: Một chuỗi nhận một trong hai giá trị"supported"để chỉ ra client hỗ trợ token binding nhưng không thương lượng với relying party, hoặc"present"khi token binding đã được sử dụngid: Một chuỗi là dạng mã hóa base64url của mã định danh token binding đã được dùng cho giao tiếp
Nếu thuộc tính này không có mặt, điều đó cho biết client không hỗ trợ token binding.
Note:
tokenBindingđã bị phản đối từ Cấp độ 3 của đặc tả, nhưng trường này được dành riêng để không bị tái sử dụng cho mục đích khác. topOriginOptional-
Chứa nguồn gốc cấp cao nhất đầy đủ của relying party. Nó chỉ được đặt nếu
crossOriginlàtrue. type-
Một chuỗi có giá trị
"webauthn.get"khi một credential hiện có được truy xuất hoặc"webauthn.create"khi một credential mới được tạo.
Ví dụ
function arrayBufferToStr(buf) {
return String.fromCharCode.apply(null, new Uint8Array(buf));
}
// pk is a PublicKeyCredential that is the result of a create() or get() Promise
const clientDataStr = arrayBufferToStr(pk.response.clientDataJSON);
const clientDataObj = JSON.parse(clientDataStr);
console.log(clientDataObj.type); // "webauthn.create" or "webauthn.get"
console.log(clientDataObj.challenge); // base64 encoded String containing the original challenge
console.log(clientDataObj.origin); // the window.origin
Thông số kỹ thuật
| Specification |
|---|
| Web Authentication: An API for accessing Public Key Credentials - Level 3> # dom-authenticatorresponse-clientdatajson> |