Spec-Zone.ru › Web APIs

IdentityProvider: getUserInfo() статический метод

Экспериментально: Это экспериментальная технология .
Перед использованием в производстве внимательно ознакомьтесь со таблицей совместимости браузеров.

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

Статический метод getUserInfo() интерфейса IdentityProvider возвращает информацию о вошедшем пользователе, которая может быть использована для отображения персонализированного приветствия и кнопки входа. Этот метод должен вызываться из <iframe> с происхождением поставщика идентификации (IdP), чтобы скрипты сторонних ресурсов (RP) не могли получить доступ к данным. Это действие должно выполняться после того, как пользователь войдёт на сайт третьей стороны (RP).

Этот шаблон уже широко используется на сайтах, использующих федерацию идентификации для входа, но getUserInfo() предлагает способ достижения этой цели без использования куки сторонних ресурсов.

Примечания по использованию

При вызове getUserInfo(), браузер отправит запрос на IdP к точке входа для списка учётных записей для получения информации о пользователе только в том случае, если оба условия ниже выполняются:

  • Пользователь ранее вошел на сайт третьей стороны с использованием IdP через FedCM в текущей сессии браузера, и данные не были очищены.
  • Пользователь вошел в IdP в текущей сессии браузера.

getUserInfo() необходимо вызывать внутри встроенной <iframe>, и происхождение встроенного сайта должно совпадать с происхождением configURL IdP. Кроме того, в HTML-коде вставки необходимо явно разрешить его использование с помощью identity-credentials-get Permissions-Policy:

<iframe
  src="https://idp.example/signin"
  allow="identity-credentials-get"></iframe>

Синтаксис

IdentityProvider.getUserInfo(config)

Параметры

config

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

configURL

URL файла конфигурации поставщика идентификации, из которого необходимо получить информацию о пользователе.

clientId

Идентификатор клиента RP, выданный IdP.

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

Promise, который выполняется с массивом объектов, каждый из которых содержит информацию о отдельной учётной записи пользователя. Каждый объект содержит следующие свойства:

email

Строка, представляющая адрес электронной почты пользователя.

name

Строка, представляющая полное имя пользователя.

givenName

Строка, представляющая имя (или сокращенное имя) пользователя.

picture

Строка, представляющая URL изображения профиля пользователя.

Исключения

InvalidStateError DOMException

Выбрасывается, если предоставленная configURL некорректна или если происхождение встроенного документа не совпадает с происхождением configURL.

NetworkError DOMException

Выбрасывается, если браузер не может подключиться к IdP или если getUserInfo() вызван из документа верхнего уровня.

NotAllowedError DOMException

Выбрасывается, если встроенному <iframe> не задан identity-credentials-get Permissions-Policy для разрешения использования getUserInfo() или если API FedCM отключено глобально политикой, установленной в документе верхнего уровня.

Примеры

// Iframe displaying a page from the https://idp.example origin
const user_info = await IdentityProvider.getUserInfo({
  configUrl: "https://idp.example/fedcm.json",
  clientId: "client1234",
});

// IdentityProvider.getUserInfo() returns an array of user information.
if (user_info.length > 0) {
  // Returning accounts should be first, so the first account received
  // is guaranteed to be a returning account
  const name = user_info[0].name;
  const given_name = user_info[0].given_name;
  const display_name = given_name ? given_name : name;
  const picture = user_info[0].picture;
  const email = user_info[0].email;

  // ...

  // Render the personalized sign-in button using the information above
}

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

Спецификация
API федерального управления учётными данными
# dom-identityprovider-getuserinfo

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
getUserInfo_static 116 116 Нет 102 Нет 116 Нет 78 Нет 24.0 Нет

См. также

  • API федерального управления учётными данными на developers.google.com (2023)

© 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/IdentityProvider/getUserInfo_static

Spec-Zone.ru

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