Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Cuidado
O Toolkit do Microsoft Graph foi preterido. O período de reforma começa a 1 de setembro de 2025, com a reforma completa prevista para 28 de agosto de 2026. Os programadores devem migrar para utilizar os SDKs do Microsoft Graph ou outras ferramentas suportadas do Microsoft Graph para criar experiências Web. Para obter mais informações, veja o anúncio de preterição.
Se tiver código de autenticação existente na sua aplicação, pode criar um fornecedor personalizado para ativar a autenticação e o acesso aos componentes do Microsoft Graph para Microsoft Graph Toolkit. Existem duas formas de criar fornecedores personalizados:
- Criar um novo
SimpleProviderao transmitir uma função para obter um token de acesso - Expandir a
IProviderclasse abstrata
Este artigo descreve cada abordagem mais detalhadamente.
SimpleProvider
Instanciar a SimpleProvider classe ao transmitir uma função que devolverá um token de acesso para âmbitos transmitidos.
let provider = new SimpleProvider((scopes: string[]) => {
// return a promise with accessToken
});
Além disso, também pode fornecer funções e logout opcionais login que podem processar as chamadas de início de sessão e de fim de sessão a partir do componente De início de sessão.
Importante
Para indicar aos componentes que podem começar a chamar as APIs do Microsoft Graph depois de um utilizador iniciar sessão com êxito, tem de chamar Providers.setState(ProviderState.SignedIn). Um exemplo disto é mostrado na função login abaixo.
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);
Gerir estado
Para que os componentes estejam cientes do estado do fornecedor, terá de chamar o provider.setState(state: ProviderState) método sempre que o estado for alterado. Por exemplo, quando o utilizador tiver sessão iniciada, chame provider.setState(ProviderState.SignedIn). A ProviderState enumeração define três estados, conforme mostrado.
export enum ProviderState {
Loading,
SignedOut,
SignedIn
}
IProvider
Pode expandir a IProvider classe abstrata para criar o seu próprio fornecedor.
Estado
Um fornecedor tem de controlar o estado de autenticação e atualizar os componentes quando o estado for alterado. A IProvider classe já implementa o onStateChanged(eventHandler) processador e a state: ProviderState propriedade . Só precisa de utilizar o setState(state:ProviderState) método na sua implementação para atualizar o estado quando este for alterado. Atualizar o estado irá acionar o stateChanged evento e atualizar todos os componentes automaticamente.
Iniciar sessão/Terminar sessão
Se o seu fornecedor fornecer a funcionalidade de início de sessão ou fim de sessão, implemente os login(): Promise<void> métodos e logout(): Promise<void> . Estes métodos são opcionais.
Token de acesso
Tem de implementar o getAccessToken({'scopes': scopes[]}) : Promise<string> método . Este método é utilizado para obter um token válido antes de cada chamada para o Microsoft Graph.
Graph
Os componentes utilizam o SDK Javascript do Microsoft Graph para todas as chamadas para o Microsoft Graph. O seu fornecedor tem de disponibilizar o SDK através da graph propriedade . No construtor, crie uma nova Graph instância, conforme mostrado.
this.graph = new Graph(this);
A Graph classe é um wrapper leve sobre o SDK do Microsoft Graph.
Exemplo
Todos os fornecedores expandem a IProvider classe abstrata. Por exemplo, veja o código fonte de qualquer um dos fornecedores existentes.
Definir o fornecedor global
Os componentes utilizam a Providers.globalProvider propriedade para aceder a um fornecedor. Depois de criar o seu próprio fornecedor, defina esta propriedade para o seu fornecedor.
import { Providers } from '@microsoft/mgt';
Providers.globalProvider = myProvider;
Todos os componentes serão notificados do novo fornecedor e começarão a utilizá-lo.