Spec-Zone.ru › Web APIs

AuthenticatorResponse: свойство clientDataJSON

Базовая Широко доступная

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2021 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Свойство clientDataJSON интерфейса AuthenticatorResponse хранит строку JSON, представляющую данные клиента, которые были переданы в navigator.credentials.create() или navigator.credentials.get(), в ArrayBuffer. К этому свойству можно получить доступ только к одному из дочерних объектов AuthenticatorResponse, а именно AuthenticatorAttestationResponse или AuthenticatorAssertionResponse.

Значение

Значение типа ArrayBuffer.

Свойства экземпляра

После преобразования объекта clientDataJSON из ArrayBuffer в объект JavaScript, он будет иметь следующие свойства:

challenge

Кодированная в base64url версия криптографического запроса, отправленного сервером стороны, полагающейся на аутентификацию. Исходное значение передаётся в качестве параметра challenge в CredentialsContainer.get() или CredentialsContainer.create().

crossOrigin Необязательно

Булево значение. Если установлено в значение true, это означает, что вызывающий контекст — это <iframe>, который не находится в той же области, что и его родительские фреймы.

origin

Полностью квалифицированный URI origin стороны, полагающейся на аутентификацию, который был предоставлен клиентом/браузером аутентификатору. Мы должны ожидать, что идентификатор стороны, полагающейся на аутентификацию, будет суффиксом этого значения.

tokenBinding Необязательно Устарело

Объект, описывающий состояние протокола привязки токена для связи со стороной, полагающейся на аутентификацию. Он имеет два свойства:

  • status: Строка, которая может иметь значение "supported" (клиент поддерживает привязку токена, но не договорился с полагающейся стороной) или "present" (привязка токена была уже использована)
  • id: Строка, представляющая собой кодирование в base64url идентификатора привязки токена, который использовался для связи.

Отсутствие этого свойства означает, что клиент не поддерживает привязку токена.

Примечание: tokenBinding устарело, начиная с уровня 3 спецификации, но поле зарезервировано, чтобы избежать его повторного использования для другой цели.

topOrigin Необязательно

Содержит полностью квалифицированный URI origin верхнего уровня стороны, полагающейся на аутентификацию. Он устанавливается только тогда, когда crossOrigin является true.

type

Строка, которая может быть "webauthn.get" (при получении существующего удостоверения) или "webauthn.create" (при создании нового удостоверения).

Примеры

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

Спецификации

Спецификация
Веб-аутентификация: API для доступа к удостоверениям с открытым ключом — Уровень 3
# dom-authenticatorresponse-clientdatajson

Совместимость с браузерами

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
clientDataJSON 67 18
60Поддерживает только токены USB U2F.
54 13 70 92
60–92Поддерживает только токены USB U2F.
48 13 10.0 Нет

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/AuthenticatorResponse/clientDataJSON

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API