Fournisseur personnalisé
Si vous avez du code d’authentification existant dans votre application, vous pouvez créer un fournisseur personnalisé pour activer l’authentification et l’accès aux composants Microsoft Graph for Microsoft Graph Shared Computer Toolkit. Il existe deux façons de créer des fournisseurs personnalisés :
- Créer une nouvelle fonction
SimpleProvider
en passant une fonction pour obtenir un jeton d’accès - Étendre la classe
IProvider
abstraite
Cet article décrit chaque approche plus en détail.
SimpleProvider
Ins instantiate the SimpleProvider
class by passing in a function that will return an access token for passed-in scopes.
let provider = new SimpleProvider((scopes: string[]) => {
// return a promise with accessToken
});
En outre, vous pouvez également login
logout
fournir une fonction facultative qui peut gérer les appels de connexion et de connexion à partir du composant de connexion.
Important
Pour indiquer aux composants qu’ils peuvent commencer à appeler les API Microsoft Graph une fois qu’un utilisateur s’est correctement Graph, vous devez appeler Providers.setState(ProviderState.SignedIn)
. La fonction ci-dessous en montre login
un 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 connaissent l’état du fournisseur, provider.setState(state: ProviderState)
vous devez appeler la méthode chaque fois que l’état change. Par exemple, lorsque l’utilisateur s’est inscrit, 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 classe IProvider
abstraite pour créer votre propre fournisseur.
État
Un fournisseur doit suivre l’état d’authentification et mettre à jour les composants lorsque l’état change. La IProvider
classe implémente déjà le onStateChanged(eventHandler)
handler et la state: ProviderState
propriété. Il vous suffit d’utiliser la méthode setState(state:ProviderState)
dans votre implémentation pour mettre à jour l’état lorsqu’il change. La mise à jour de l’état entraîne le feu de stateChanged
l’événement et la mise à jour automatique de tous les composants.
Connexion/Ouverture de session
Si votre fournisseur fournit des fonctionnalités de connexion ou de connexion, implémentez les login(): Promise<void>
méthodes logout(): Promise<void>
et les méthodes. 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 permet d’obtenir un jeton valide avant chaque appel à Microsoft Graph.
Graph
Les composants utilisent le 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 une Graph
instance, comme illustré.
this.graph = new Graph(this);
La Graph
classe est un wrapper clair au-dessus du SDK Microsoft Graph.
Exemple
Tous les fournisseurs étendent la classe IProvider
abstraite. Pour obtenir des exemples, jetez un œil au 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.
Commentaires
Envoyer et afficher des commentaires pour