Spec-Zone.ru › Web APIs

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

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

Статический метод parseRequestOptionsFromJSON() интерфейса PublicKeyCredential преобразует представление типа JSON в экземпляр PublicKeyCredentialRequestOptions.

Метод является удобной функцией для преобразования информации, предоставленной сервером, предоставляющим услугу, веб-приложению для запроса существующего идентификатора.

Синтаксис

PublicKeyCredential.parseRequestOptionsFromJSON(options)

Параметры

options

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

Значение возврата

Экземпляр PublicKeyCredentialRequestOptions.

Исключения

EncodingError DOMException

Выбрасывается, если какая-либо часть объекта options не может быть преобразована в экземпляр PublicKeyCredentialRequestOptions.

Описание

Процесс проверки подлинности в веб-приложении для аутентификации (зарегистрированного) пользователя включает в себя отправку сервером, предоставляющим услугу, веб-приложению информации, необходимой для поиска существующего идентификатора, включая данные об идентификации пользователя, сервере, предоставляющем услугу, «вызове» и, необязательно, местоположение для поиска идентификатора: например, на встроенном локальном аутентификаторе или на внешнем по USB, BLE и так далее. Веб-приложение передает эту информацию аутентификатору для поиска идентификатора, вызвав navigator.credentials.get() с аргументом, содержащим данные, предоставленные сервером, в качестве экземпляра PublicKeyCredentialRequestOptions.

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

Примеры

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

const requestCredentialOptionsJSON =  {
    challenge: new Uint8Array([139, 66, 181, 87, 7, 203, ...]),
    rpId: "acme.com",
    allowCredentials: [{
      type: "public-key",
      id: new Uint8Array([64, 66, 25, 78, 168, 226, 174, ...])
    }],
    userVerification: "required",
  }

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

JSON.stringify(requestCredentialOptionsJSON);

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

// Convert options to form used by get()
const publicKey = PublicKeyCredential.parseRequestOptionsFromJSON(
  requestCredentialOptionsJSON, // JSON-type representation
);

navigator.credentials
  .get({ publicKey })
  .then((returnedCredentialInfo) => {
    // Handle the returned credential information here.
  })
  .catch((err) => {
    console.error(err);
  });

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

Спецификация
Web Authentication: API для доступа к Public Key Credentials - Уровень 3
# dom-publickeycredential-parserequestoptionsfromjson

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

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

См. также

  • API аутентификации веб-приложений
  • PublicKeyCredential.parseCreationOptionsFromJSON()

© 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/parseRequestOptionsFromJSON_static

Spec-Zone.ru

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