PublicKeyCredential: parseCreationOptionsFromJSON() статический метод
Безопасный контекст: Данная функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Статический метод parseCreationOptionsFromJSON() интерфейса PublicKeyCredential создаёт объект PublicKeyCredentialCreationOptions из JSON-представления его свойств.
Этот метод — вспомогательная функция для преобразования информации о параметрах аутентификации, предоставляемой сервером, в форму, которую веб-приложение может использовать для создания учётных данных.
Синтаксис
PublicKeyCredential.parseCreationOptionsFromJSON(options)
Параметры
options-
Объект с той же структурой, что и
PublicKeyCredentialCreationOptions, но с использованием строк, закодированных в формате base64url, вместо свойств буфера.
Возвращаемое значение
Исключения
-
EncodingErrorDOMException -
Бросается, если объект
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);
});
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | Нет | Нет | Нет |
См. также
© 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