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)
Параметры
Возвращаемое значение
Promise, который выполняется с массивом объектов, каждый из которых содержит информацию о отдельной учётной записи пользователя. Каждый объект содержит следующие свойства:
Исключения
-
InvalidStateErrorDOMException -
Выбрасывается, если предоставленная
configURLнекорректна или если происхождение встроенного документа не совпадает с происхождениемconfigURL. -
NetworkErrorDOMException -
Выбрасывается, если браузер не может подключиться к IdP или если
getUserInfo()вызван из документа верхнего уровня. -
NotAllowedErrorDOMException -
Выбрасывается, если встроенному
<iframe>не заданidentity-credentials-getPermissions-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
}
Спецификации
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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