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 challenge trong CredentialsContainer.get() hoặc CredentialsContainer.create().

crossOrigin Optional

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.

tokenBinding Optional 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ụng
  • id: 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.

topOrigin Optional

Chứa nguồn gốc cấp cao nhất đầy đủ của relying party. Nó chỉ được đặt nếu crossOrigintrue.

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ụ

js
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

Tương thích trình duyệt