Partager via


Fournisseur personnalisé

Si vous disposez d’un code d’authentification existant dans votre application, vous pouvez créer un fournisseur personnalisé pour activer l’authentification et l’accès aux composants du Kit de ressources Microsoft Graph pour Microsoft Graph. Il existe deux façons de créer des fournisseurs personnalisés :

  • Créer un nouveau SimpleProvider en transmettant une fonction pour obtenir un jeton d’accès
  • Étendre la IProvider classe abstraite

Cet article décrit chaque approche plus en détail.

SimpleProvider

Instanciez la SimpleProvider classe en transmettant une fonction qui retournera un jeton d’accès pour les étendues passées.

let provider = new SimpleProvider((scopes: string[]) => {
  // return a promise with accessToken
});

En outre, vous pouvez également fournir des fonctions et logout facultatives login qui peuvent gérer les appels de connexion et de déconnexion à partir du composant Connexion.

Importante

Pour indiquer aux composants qu’ils peuvent commencer à appeler les API Microsoft Graph une fois qu’un utilisateur s’est correctement connecté, vous devez appeler Providers.setState(ProviderState.SignedIn). La fonction ci-dessous en montre un login exemple.

function getAccessToken(scopes: string[]) {
  // return a promise with accessToken string
}

function login() {
  //login code
  Providers.globalProvider.setState(ProviderState.SignedIn)
}

function logout() {
  // logout code
}

let provider = new SimpleProvider(getAccessToken, login, logout);

Gérer l’état

Pour que les composants soient conscients de l’état du fournisseur, vous devez appeler la provider.setState(state: ProviderState) méthode chaque fois que l’état change. Par exemple, lorsque l’utilisateur s’est connecté, appelez provider.setState(ProviderState.SignedIn). L’énumération ProviderState définit trois statuts, tel qu’illustré.

export enum ProviderState {
  Loading,
  SignedOut,
  SignedIn
}

IProvider

Vous pouvez étendre la IProvider classe abstraite pour créer votre propre fournisseur.

État

Un fournisseur doit effectuer le suivi de l’état d’authentification et mettre à jour les composants lorsque l’état change. La IProvider classe implémente déjà le onStateChanged(eventHandler) gestionnaire et la state: ProviderState propriété . Il vous suffit d’utiliser la setState(state:ProviderState) méthode dans votre implémentation pour mettre à jour l’état lorsqu’il change. La mise à jour de l’état déclenche l’événement stateChanged et met à jour tous les composants automatiquement.

Connexion/Déconnexion

Si votre fournisseur fournit des fonctionnalités de connexion ou de déconnexion, implémentez les login(): Promise<void> méthodes et logout(): Promise<void> . Ces méthodes sont facultatives.

Access token (Jeton d’accès)

Vous devez implémenter la getAccessToken({'scopes': scopes[]}) : Promise<string> méthode . Cette méthode est utilisée pour obtenir un jeton valide avant chaque appel à Microsoft Graph.

Graph

Les composants utilisent le Kit de développement logiciel (SDK) Javascript Microsoft Graph pour tous les appels à Microsoft Graph. Votre fournisseur doit rendre le SDK disponible via la graph propriété . Dans votre constructeur, créez un Graph instance, comme indiqué.

this.graph = new Graph(this);

La Graph classe est un wrapper léger sur le sdk Microsoft Graph.

Exemple

Tous les fournisseurs étendent la IProvider classe abstraite. Pour obtenir des exemples, examinez le code source de l’un des fournisseurs existants.

Définir le fournisseur global

Les composants utilisent la Providers.globalProvider propriété pour accéder à un fournisseur. Après avoir créé votre propre fournisseur, définissez cette propriété sur votre fournisseur.

import { Providers } from '@microsoft/mgt';

Providers.globalProvider = myProvider;

Tous les composants seront avertis du nouveau fournisseur et commenceront à l’utiliser.