Spec-Zone.ru › Web APIs

PublicKeyCredential: parseCreationOptionsFromJSON() статический метод

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

Статический метод parseCreationOptionsFromJSON() интерфейса PublicKeyCredential создаёт объект PublicKeyCredentialCreationOptions из JSON-представления его свойств.

Этот метод — вспомогательная функция для преобразования информации о параметрах аутентификации, предоставляемой сервером, в форму, которую веб-приложение может использовать для создания учётных данных.

Синтаксис

PublicKeyCredential.parseCreationOptionsFromJSON(options)

Параметры

options

Объект с той же структурой, что и PublicKeyCredentialCreationOptions, но с использованием строк, закодированных в формате base64url, вместо свойств буфера.

Возвращаемое значение

Объект PublicKeyCredentialCreationOptions.

Исключения

EncodingError DOMException

Бросается, если объект options не может быть преобразован в объект PublicKeyCredentialCreationOptions.

Описание

Процесс веб-аутентификации для создания пары ключей и регистрации пользователя включает отправку сервером информации веб-приложению, необходимой для создания учётных данных, включая данные о пользователе, сервере и «вызове». Веб-приложение передаёт эту информацию аутентификатору, вызывая navigator.credentials.create() с объектом PublicKeyCredentialCreationOptions в качестве аргумента.

Спецификация не определяет, как отправляется информация, необходимая для создания учётных данных. Удобный подход заключается в том, чтобы сервер упаковывал информацию в JSON-представление объекта PublicKeyCredentialCreationOptions, которое соответствует его структуре, но кодирует свойства буфера, такие как challenge и user.id, в виде строк base64url. Этот объект может быть сериализован в JSON-строку, отправлен веб-приложению и десериализован, а затем преобразован в объект PublicKeyCredentialCreationOptions с помощью parseCreationOptionsFromJSON().

Примеры

При регистрации нового пользователя сервер, выполняющий роль доверенной стороны, предоставит веб-приложению информацию о необходимых учётных данных. Приведённый ниже код определяет эту информацию в форме, описанной в параметре options выше (взято из "получение AuthenticatorAttestationResponse" в AuthenticatorResponse):

const createCredentialOptionsJSON = {
  challenge:
    "21, 31, 105, " /* 29 more random bytes generated by the server in this string */,
  rp: {
    name: "Example CORP",
    id: "login.example.com",
  },
  user: {
    id: "16",
    name: "canand@example.com",
    displayName: "Carina Anand",
  },
  pubKeyCredParams: [
    {
      type: "public-key",
      alg: -7,
    },
  ],
};

Поскольку этот объект использует только типы данных JSON, его можно сериализовать в JSON с помощью JSON.stringify() и отправить веб-приложению.

JSON.stringify(createCredentialOptionsJSON);

Веб-приложение может десериализовать JSON-строку обратно в объект createCredentialOptionsJSON (не показано). Метод parseCreationOptionsFromJSON() используется для преобразования этого объекта в форму, которую можно использовать в navigator.credentials.create():

// Convert options to form used by create()
const createCredentialOptions =
  PublicKeyCredential.parseCreationOptionsFromJSON(
    createCredentialOptionsJSON, // JSON-type representation
  );

navigator.credentials
  .create({ publicKey: createCredentialOptions })
  .then((newCredentialInfo) => {
    // Handle the new credential information here.
  })
  .catch((err) => {
    console.error(err);
  });

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

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

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
parseCreationOptionsFromJSON_static 129 129 119 115 Нет 129 119 86 Нет Нет Нет

См. также

  • API веб-аутентификации
  • PublicKeyCredential.parseRequestOptionsFromJSON()
  • PublicKeyCredential.toJSON()

© 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/PublicKeyCredential/parseCreationOptionsFromJSON_static

Spec-Zone.ru

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