Руководство: Извлечение пользовательских данных с помощью Angular SPA

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

В этом руководстве представлена окончательная часть серии, демонстрирующая создание одностраничного приложения Angular (SPA) и добавление проверки подлинности с помощью платформы удостоверений Майкрософт. В части 2 этой сериивы создали Angular SPA и подготовили его для аутентификации с арендатором вашей рабочей группы.

В этом руководстве описано, как вы

  • Добавьте обработку данных в приложение Angular.
  • Протестируйте приложение и извлеките пользовательские данные.

Необходимые условия

Извлечение данных для просмотра в пользовательском интерфейсе приложения

Чтобы настроить приложение Angular для взаимодействия с API Microsoft Graph, выполните следующие действия.

  1. Откройте файл src/app/profile/profile.component.ts и замените содержимое следующим фрагментом кода:

    // 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')!;
      }
    }
    

    ProfileComponent в Angular извлекает данные профиля пользователя из конечной точки /me Microsoft Graph. Он определяет ProfileType для структурирования свойств, таких как displayName и mail. В ngOnInitиспользуется HttpClient для отправки запроса GET, назначая ответ profile. Он также извлекает и сохраняет время истечения срока действия токена из localStorage в tokenExpiration.

  2. Откройте файл src/app/profile/profile.component.html и замените содержимое следующим фрагментом кода:

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

    Этот код определяет html-шаблон, который отображает сведения о профиле пользователя, используя синтаксис интерполяции Angular для привязки свойств из объекта profile (например, businessPhones, displayName, jobTitle). Он также отображает значение tokenExpiration и содержит примечание о том, что обновление страницы будет использовать кэшированный маркер доступа до истечения срока действия, после чего будет запрошен новый маркер.

Тестирование приложения

Чтобы приложение работало, необходимо запустить приложение Angular и войти в систему, чтобы пройти проверку подлинности с помощью клиента Microsoft Entra и извлечь пользовательские данные.

Чтобы протестировать приложение, выполните следующие действия.

  1. Запустите приложение Angular, выполнив следующую команду в терминале:

    ng serve --open
    
  2. Нажмите кнопку входа, чтобы пройти проверку подлинности с помощью клиента Microsoft Entra.

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

    снимок экрана приложения JavaScript с результатами вызова API.

  4. Нажмите кнопку выхода, чтобы выйти из приложения.

Дальнейшие действия

Узнайте, как использовать платформу удостоверений Майкрософт, ознакомившись с серией обучающих руководств по созданию веб-API.

Руководство: Регистрация веб-API с помощью платформы идентификации Microsoft