Компонент входа в Microsoft Graph Toolkit

Компонент входа — это кнопка и всплывающий элемент управления, предназначенные для упрощения проверки подлинности платформы удостоверений Майкрософт. Он обеспечивает два состояния:

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

Вы также можете разрешить вход с несколькими учетными записями. Отобразится список всех ваших учетных записей, вошедшего в систему, и вы можете выполнить вход с помощью других новых учетных записей.

Пример

В примере ниже показан компонент mgt-login с указанием вошедшего пользователя.

Использование элемента управления без поставщика проверки подлинности

По умолчанию компонент поддерживает поставщика и Microsoft Graph. Но если вы хотите указать свою логику и проверку подлинности, вы можете воспользоваться свойством userDetails, чтобы настроить сведения о вошедшем пользователе.

Атрибут Свойство Описание
login-view loginView Определяет стиль представления, применяемый к вошедшего в систему пользователя. Параметры: full, compact, аватар, по умолчанию — full.
show-presence showPresence Определяет, отображается ли индикатор присутствия для текущего пользователя в элементе mgt-person управления с пользователем, прошедшим проверку подлинности. Значение по умолчанию: false.
user-details userDetails Позволяет задать сведения об объекте пользователя, которые будет отображать компонент.

В примере ниже настраиваются сведения о пользователе.

let loginControl = document.getElementById("myLoginControl");
loginControl.userDetails = {
  displayName: "Nikola Metulev",
  mail: "nikola@contoso.com",
  personImage: "url to the image",
};

Если userDetails задано значение , null вы перейдете в состояние выхода.

Настраиваемые свойства CSS

Компонент mgt-login определяет следующие настраиваемые свойства CSS.

<mgt-login class="login"></mgt-login>
.login {
  --login-signed-out-button-background: red;
  --login-signed-out-button-hover-background: orange;
  --login-signed-out-button-text-color: purple;
  --login-signed-in-background: red;
  --login-signed-in-hover-background: green;
  --login-button-padding: 5px;
  --login-popup-background-color: blue;
  --login-popup-text-color: brown;
  --login-popup-command-button-background-color: orange;
  --login-popup-padding: 8px;
  --login-add-account-button-text-color: yellow;
  --login-add-account-button-background-color: red;
  --login-add-account-button-hover-background-color: purple;
  --login-command-button-background-color: orange;
  --login-command-button-hover-background-color: purple;
  --login-command-button-text-color: black;
  --login-person-avatar-size: 60px;

  /** person component tokens **/
  --person-line1-text-color: whitesmoke;
  --person-line2-text-color: white;
  --person-background-color: blue;
}

Дополнительные сведения см. в статье Компоненты стиля.

События

Из элемента управления инициируются следующие события.

Событие Когда он генерируется Пользовательские данные Отменяемым Пузыри Работает с пользовательским шаблоном
loginInitiated Пользователь нажал кнопку входа, чтобы начать процесс входа. Нет Да Нет Да
loginCompleted Процесс входа выполнен успешно, и пользователь вошел в систему. Нет Нет Нет Да
loginFailed Пользователь отменил процесс входа или не смог войти в систему. Нет Нет Нет Да
logoutInitiated Пользователь начал выход из системы Нет Да Нет Да
logoutCompleted Пользователь вышел из Нет Нет Нет Да

Чтобы обрабатывать вход и выход, используйте события loginInitiated и logoutInitiated.

Дополнительные сведения об обработке событий см. в разделе События.

Шаблоны

Компонент mgt-login поддерживает несколько шаблонов, позволяющих заменить определенные части компонента. Чтобы указать шаблон, добавьте элемент <template> в компонент и присвойте параметру data-type одно из значений, указанных в следующей таблице.

Тип данных Контекст данных Описание
signed-in-button-content personDetails: объект person, personImage: строка изображения пользователя Шаблон, используемый для отображения содержимого в кнопке, если пользователь выполнил вход.
signed-out-button-content null Шаблон, используемый для отображения содержимого в кнопке, если пользователь не выполнил вход.
flyout-commands handleSignOut: функция выхода Шаблон, используемый для отображения команд во всплывающем окне.
flyout-person-details personDetails: объект person, personImage: строка изображения пользователя Шаблон, используемый для отображения сведений о пользователе во всплывающем окне.

Разрешения Microsoft Graph

Этот компонент использует следующие API Microsoft Graph. Для каждого из запросов API требуется одно из перечисленных разрешений.

Конфигурация Разрешение API
default User.Read, User.ReadWrite, User.ReadBasic.All, User.Read.All, Directory.Read.All, User.ReadWrite.All, Directory.ReadWrite.All /users/me/
default User.Read, User.ReadWrite, User.ReadBasic.All, User.Read.All, User.ReadWrite.All /users/me//photo/$value

Подкомпоненты

Компонент mgt-login состоит из одного или нескольких подкомпонентов, для которых могут потребоваться другие разрешения, отличные от перечисленных ранее. Дополнительные сведения см. в документации по каждому подкомпоненту: mgt-person.

Проверка подлинности

В элементе управления входом используется глобальный поставщик проверки подлинности, описанный в документации по проверке подлинности.

Кэш

Этот компонент использует компонент Person для отображения пользователя и наследует от него всю конфигурацию кэша.

Расширение для дополнительного управления

В более сложных сценариях или настраиваемых пользовательских интерфейсах этот компонент предоставляет несколько методов protected render* для переопределения в расширениях компонента.

Метод Описание
renderButton Отображает хром кнопки.
renderButtonContent Отображает содержимое кнопки.
renderSignedInButtonContent Отображение содержимого кнопки, если пользователь выполнил вход.
renderSignedOutButtonContent Отрисовка содержимого кнопки, если пользователь не вошел в систему.
renderFlyout Отображает хром всплывающего окна.
renderFlyoutContent Отображает содержимое всплывающего окна.
renderFlyoutPersonDetails Отображение сведений о пользователе во всплывающем окне.
renderFlyoutCommands Отображение команд всплывающего окна.

Создание собственного всплывающего окна

Можно использовать собственный компонент всплывающего окна вместо встроенного, переопределив метод renderFlyout() и предоставив новое всплывающее окно.

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

Метод Описание
hideFlyout Закрывает всплывающее окно.
showFlyout Отображает всплывающее окно.
toggleFlyout Переключает состояние всплывающего окна.

Локализация

Элемент управления предоставляет следующие переменные, которые можно локализовать. Дополнительные сведения см. в разделе Локализация компонентов.

Имя строки Значение по умолчанию
signInLinkSubtitle Sign In
signOutLinkSubtitle Sign Out
signInWithADifferentAccount Sign in with a different account