Anmeldekomponente im Microsoft Graph-Toolkit

Eine Anmeldekomponente ist ein Schaltflächen- und Flyout-Steuerelement, um Microsoft Identity Platform Authentifizierung zu erleichtern. Es bietet zwei Zustände:

  • Wenn der Benutzer nicht angemeldet ist, ist das Steuerelement eine einfache Schaltfläche zum Initiieren des Anmeldevorgangs.
  • Wenn der Benutzer angemeldet ist, zeigt das Steuerelement den aktuell angemeldeten Benutzernamen, das Profilbild und die E-Mail-Adresse an. Wenn Sie darauf klicken, wird ein Flyout mit einem Befehl zum Abmelden geöffnet.

Sie können auch die Anmeldung mit mehreren Konten zulassen. Dadurch werden alle angemeldeten Konten aufgelistet, und Sie haben die Möglichkeit, sich mit anderen neuen Konten anzumelden.

Beispiel

Das folgende Beispiel zeigt die mgt-login Komponente mit einem angemeldeten Benutzer.

Verwenden des Steuerelements ohne Authentifizierungsanbieter

Die Komponente funktioniert mit einem Anbieter und Microsoft Graph sofort einsatzbereit. Wenn Sie jedoch Ihre eigene Logik und Authentifizierung bereitstellen möchten, können Sie die userDetails -Eigenschaft verwenden, um die Details des angemeldeten Benutzers festzulegen.

Attribut Eigenschaft Beschreibung
login-view Loginview Bestimmt das Ansichtsformat, das auf den angemeldeten Benutzer angewendet werden soll. Optionen sind "full", "compact", "avatar", standardmäßig "full".
show-presence showPresence Bestimmt, ob die Anwesenheitsanzeige für den aktuellen Benutzer im mgt-person Steuerelement mit einem authentifizierten Benutzer angezeigt wird. Der Standardwert ist false.
Benutzerdetails userDetails Ermöglicht das Festlegen der Benutzerobjektdetails, die von der Komponente angezeigt werden.

Im folgenden Beispiel werden die Personendetails festgelegt.

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

Die Einstellung userDetails auf null wechselt in den Status "Abgemeldet".

Benutzerdefinierte CSS-Eigenschaften

Die mgt-login Komponente definiert die folgenden benutzerdefinierten CSS-Eigenschaften.

<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;
}

Weitere Informationen finden Sie unter Formatieren von Komponenten.

Ereignisse

Die folgenden Ereignisse werden vom -Steuerelement ausgelöst.

Ereignis Wann wird es ausgegeben? Benutzerdefinierte Daten Abbrechbare Blasen Funktioniert mit benutzerdefinierter Vorlage
loginInitiated Der Benutzer hat auf die Anmeldeschaltfläche geklickt, um den Anmeldevorgang zu starten. Keinen Ja Nein Ja
loginCompleted Der Anmeldevorgang war erfolgreich, und der Benutzer ist jetzt angemeldet. Keine Nein Nein Ja
loginFailed Der Benutzer hat den Anmeldevorgang abgebrochen oder konnte sich nicht anmelden. Keine Nein Nein Ja
logoutInitiated Der Benutzer hat mit der Abmeldung begonnen. Keinen Ja Nein Ja
logoutCompleted Der Benutzer hat sich abgemeldet. Keine Nein Nein Ja

Verwenden Sie die loginInitiated Ereignisse und logoutInitiated , um das An- und Abmelden zu behandeln.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Ereignisse.

Vorlagen

Die mgt-login Komponente unterstützt mehrere Vorlagen , mit denen Sie bestimmte Teile der Komponente ersetzen können. Um eine Vorlage anzugeben, schließen Sie ein <template> Element innerhalb einer Komponente ein, und legen Sie den data-type Wert auf einen der in der folgenden Tabelle aufgeführten Werte fest.

Datentyp Datenkontext Beschreibung
Inhalt der Schaltfläche "angemeldet" personDetails: person object, personImage: person image string Die Vorlage, die zum Rendern des Inhalts in der Schaltfläche verwendet wird, wenn der Benutzer angemeldet ist.
Inhalt der Schaltfläche "abgemeldet" null Die Vorlage, die zum Rendern des Inhalts in der Schaltfläche verwendet wird, wenn der Benutzer nicht angemeldet ist.
flyout-commands handleSignOut: Abmeldefunktion Die Vorlage, die zum Rendern der Befehle im Flyout verwendet wird
flyout-person-details personDetails: person object, personImage: person image string Die Vorlage, die zum Rendern der Personendetails im Flyout verwendet wird.

Microsoft Graph-Berechtigungen

Diese Komponente verwendet die folgenden Microsoft Graph-APIs. Für jede api-Anforderung ist eine der aufgeführten Berechtigungen erforderlich.

Konfiguration Berechtigung API
Standard User.Read, User.ReadWrite, User.ReadBasic.All, User.Read.All, Directory.Read.All, User.ReadWrite.All, Directory.ReadWrite.All /users/me/
Standard User.Read, User.ReadWrite, User.ReadBasic.All, User.Read.All, User.ReadWrite.All /users/me//photo/$value

Unterkomponenten

Die mgt-login Komponente besteht aus einem oder mehreren Unterkomponenten, die möglicherweise andere Als die zuvor aufgeführten Berechtigungen erfordern. Weitere Informationen finden Sie in der Dokumentation zu den einzelnen Unterkomponenten: mgt-person.

Authentifizierung

Das Anmeldesteuerelement verwendet den in der Authentifizierungsdokumentation beschriebenen globalen Authentifizierungsanbieter.

Cache

Diese Komponente verwendet die Person-Komponente , um den Benutzer anzuzeigen, und erbt die gesamte Cachekonfiguration von ihr.

Erweitern für mehr Kontrolle

Für komplexere Szenarien oder eine wirklich benutzerdefinierte Benutzeroberfläche macht diese Komponente mehrere protected render* Methoden zum Überschreiben in Komponentenerweiterungen verfügbar.

Methode Beschreibung
renderButton Rendert das Schaltflächenchrom.
renderButtonContent Rendert den Schaltflächeninhalt.
renderSignedInButtonContent Rendern Sie den Inhalt der Schaltfläche, wenn der Benutzer angemeldet ist.
renderSignedOutButtonContent Rendern Sie den Inhalt der Schaltfläche, wenn der Benutzer nicht angemeldet ist.
renderFlyout Rendert das Flyout-Chrom.
renderFlyoutContent Rendert den Flyoutinhalt.
renderFlyoutPersonDetails Rendern Sie die Details der Flyoutperson.
renderFlyoutCommands Rendern Sie die Flyoutbefehle.

Bring Your Own Flyout

Es ist möglich, Ihre eigene Flyoutkomponente anstelle der integrierten Komponente zu verwenden, indem Sie die renderFlyout() -Methode überschreiben und das neue Flyout bereitstellen.

Stellen Sie in diesem Fall sicher, dass die Anmeldekomponente weiterhin wie erwartet funktioniert, indem Sie die protected Flyoutanzeigemethoden überschreiben, um die Sichtbarkeit Ihres alternativen Flyouts zu aktualisieren.

Methode Beschreibung
hideFlyout Schließt das Flyout.
showFlyout Zeigt das Flyout an.
toggleFlyout Schaltet den Zustand des Flyouts um.

Lokalisierung

Das -Steuerelement macht die folgenden Variablen verfügbar, die lokalisiert werden können. Weitere Informationen finden Sie unter Lokalisieren von Komponenten.

Zeichenfolgenname Standardwert
signInLinkSubtitle Sign In
signOutLinkSubtitle Sign Out
signInWithADifferentAccount Sign in with a different account