Partager via


Tutoriel : Extraire des données utilisateur avec un SPA Angular

S’applique à : cercle vert avec un symbole de coche blanc qui indique que le contenu suivant s’applique aux locataires du personnel. Cercle vert des locataires de main-d’œuvre avec un symbole de coche blanche qui indique que le contenu suivant s’applique aux locataires externes. Locataires externes (en savoir plus)

Ce tutoriel est la dernière partie d’une série qui illustre la création d’une application monopage Angular (SPA) et l’ajout d’authentification à l’aide de la plateforme d’identités Microsoft. Dans la partie 2 de cette série, vous avez créé un SPA Angular et l’avez préparé pour l’authentification avec votre tenant de main-d’œuvre.

Dans ce didacticiel, vous avez appris à effectuer les opérations suivantes :

  • Ajoutez le traitement des données à votre application Angular.
  • Testez l’application et extrayez les données utilisateur.

Conditions préalables

Extraire des données à afficher dans l’interface utilisateur de l’application

Pour configurer votre application Angular afin d’interagir avec l’API Microsoft Graph, procédez comme suit :

  1. Ouvrez le src/app/profile/profile.component.ts fichier et remplacez le contenu par l’extrait de code suivant :

    // Required for Angular
    import { Component, OnInit } from '@angular/core';
    
    // Required for the HTTP GET request to Graph
    import { HttpClient } from '@angular/common/http';
    
    type ProfileType = {
      businessPhones?: string,
      displayName?: string,
      givenName?: string,
      jobTitle?: string,
      mail?: string,
      mobilePhone?: string,
      officeLocation?: string,
      preferredLanguage?: string,
      surname?: string,
      userPrincipalName?: string,
      id?: string
    }
    
    @Component({
      selector: 'app-profile',
      templateUrl: './profile.component.html'
    })
    export class ProfileComponent implements OnInit {
      profile!: ProfileType;
      tokenExpiration!: string;
    
      constructor(
        private http: HttpClient
      ) { }
    
      // When the page loads, perform an HTTP GET request from the Graph /me endpoint
      ngOnInit() {
        this.http.get('https://graph.microsoft.com/v1.0/me')
          .subscribe(profile => {
            this.profile = profile;
          });
    
        this.tokenExpiration = localStorage.getItem('tokenExpiration')!;
      }
    }
    

    Angular, dans ProfileComponent, extrait les données de profil utilisateur à partir de l'endpoint /me de Microsoft Graph. Il définit ProfileType pour structurer des propriétés comme displayName et mail. Dans ngOnInit, il utilise HttpClient pour envoyer une requête GET, en affectant la réponse à profile. Il récupère et stocke également l’heure d’expiration du jeton à partir de localStoragetokenExpiration.

  2. Ouvrez le src/app/profile/profile.component.html fichier et remplacez le contenu par l’extrait de code suivant :

    <div class="profile">
        <p><strong>Business Phones:</strong> {{profile?.businessPhones}}</p>
        <p><strong>Display Name:</strong> {{profile?.displayName}}</p>
        <p><strong>Given Name:</strong> {{profile?.givenName}}</p>
        <p><strong>Job Title:</strong> {{profile?.jobTitle}}</p>
        <p><strong>Mail:</strong> {{profile?.mail}}</p>
        <p><strong>Mobile Phone:</strong> {{profile?.mobilePhone}}</p>
        <p><strong>Office Location:</strong> {{profile?.officeLocation}}</p>
        <p><strong>Preferred Language:</strong> {{profile?.preferredLanguage}}</p>
        <p><strong>Surname:</strong> {{profile?.surname}}</p>
        <p><strong>User Principal Name:</strong> {{profile?.userPrincipalName}}</p>
        <p><strong>Profile Id:</strong> {{profile?.id}}</p>
        <br><br>
        <p><strong>Token Expiration:</strong> {{tokenExpiration}}</p>
        <br><br>
        <p>Refreshing this page will continue to use the cached access token until it nears expiration, at which point a new access token will be requested.</p>
    </div>
    

    Ce code définit un modèle HTML qui affiche des informations de profil utilisateur, à l’aide de la syntaxe d’interpolation d’Angular pour lier des propriétés à partir de l’objet profile (par exemple, businessPhones, , displayName). jobTitle Il affiche également la tokenExpiration valeur et inclut une note indiquant que l’actualisation de la page utilisera le jeton d’accès mis en cache jusqu’à son expiration, après quoi un nouveau jeton sera demandé.

Tester l’application

Pour que l’application fonctionne, vous devez exécuter l’application Angular et vous connecter pour vous authentifier auprès de votre locataire Microsoft Entra et extraire les données utilisateur.

Pour tester l’application, procédez comme suit :

  1. Exécutez l’application Angular en exécutant la commande suivante dans le terminal :

    ng serve --open
    
  2. Sélectionnez le bouton Se connecter pour vous authentifier auprès de votre client Microsoft Entra.

  3. Une fois connecté, sélectionnez le lien Afficher le profil pour accéder à la page Profil . Vérifiez que les informations de profil utilisateur sont affichées, notamment le nom de l’utilisateur, l’e-mail, le titre du travail et d’autres détails.

    Capture d’écran de l’application JavaScript montrant les résultats de l’appel d’API.

  4. Sélectionnez le bouton Déconnexion pour vous déconnecter de l’application.

Étapes suivantes

Découvrez comment utiliser la plateforme d’identités Microsoft en essayant la série de tutoriels suivante sur la création d’une API web.