Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Precaución
Microsoft Graph Toolkit está en desuso. El período de retirada comienza el 1 de septiembre de 2025, con la retirada completa prevista para el 28 de agosto de 2026. Los desarrolladores deben migrar al uso de los SDK de Microsoft Graph u otras herramientas de Microsoft Graph compatibles para crear experiencias web. Para obtener más información, consulte el anuncio de desuso.
Si tiene código de autenticación existente en la aplicación, puede crear un proveedor personalizado para habilitar la autenticación y el acceso a los componentes de Microsoft Graph for Microsoft Graph Toolkit. Hay dos maneras de crear proveedores personalizados:
- Cree una nueva
SimpleProviderpasando una función para obtener un token de acceso. - Extensión de la
IProviderclase abstracta
En este artículo se describe cada enfoque con más detalle.
SimpleProvider
Cree una instancia de la SimpleProvider clase pasando una función que devolverá un token de acceso para los ámbitos pasados.
let provider = new SimpleProvider((scopes: string[]) => {
// return a promise with accessToken
});
Además, también puede proporcionar una función opcional login y logout que pueda controlar las llamadas de inicio de sesión y cierre de sesión desde el componente Inicio de sesión .
Importante
Para indicar a los componentes que pueden empezar a llamar a las API de Microsoft Graph después de que un usuario inicie sesión correctamente, debe llamar Providers.setState(ProviderState.SignedIn)a . Un ejemplo de esto se muestra en la login función siguiente.
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);
Administrar estado
Para que los componentes tengan en cuenta el estado del proveedor, deberá llamar al provider.setState(state: ProviderState) método cada vez que cambie el estado. Por ejemplo, cuando el usuario haya iniciado sesión, llame a provider.setState(ProviderState.SignedIn). La ProviderState enumeración define tres estados, como se muestra.
export enum ProviderState {
Loading,
SignedOut,
SignedIn
}
IProvider
Puede ampliar la IProvider clase abstracta para crear su propio proveedor.
Estado
Un proveedor debe realizar un seguimiento del estado de autenticación y actualizar los componentes cuando cambia el estado. La IProvider clase ya implementa el onStateChanged(eventHandler) controlador y la state: ProviderState propiedad . Solo tiene que usar el método en la setState(state:ProviderState) implementación para actualizar el estado cuando cambia. Al actualizar el estado, se activará el stateChanged evento y se actualizarán todos los componentes automáticamente.
Inicio de sesión o cierre de sesión
Si el proveedor proporciona la funcionalidad de inicio de sesión o cierre de sesión, implemente los login(): Promise<void> métodos y logout(): Promise<void> . Estos métodos son opcionales.
Token de acceso
Debe implementar el getAccessToken({'scopes': scopes[]}) : Promise<string> método . Este método se usa para obtener un token válido antes de cada llamada a Microsoft Graph.
Graph
Los componentes usan el SDK de JavaScript de Microsoft Graph para todas las llamadas a Microsoft Graph. El proveedor debe hacer que el SDK esté disponible a través de la graph propiedad . En el constructor, cree una nueva Graph instancia, como se muestra.
this.graph = new Graph(this);
La Graph clase es un contenedor ligero sobre el SDK de Microsoft Graph.
Ejemplo
Todos los proveedores amplían la IProvider clase abstracta. Por ejemplo, eche un vistazo al código fuente de cualquiera de los proveedores existentes.
Establecer el proveedor global
Los componentes usan la Providers.globalProvider propiedad para acceder a un proveedor. Después de crear su propio proveedor, establezca esta propiedad en su proveedor.
import { Providers } from '@microsoft/mgt';
Providers.globalProvider = myProvider;
Todos los componentes recibirán una notificación del nuevo proveedor y comenzarán a usarlo.