Provedor de proxy
Ao usar o provedor proxy, você pode usar sua autenticação de back-end (como o fluxo Auth2.0 Em nome do fluxo) para alimentar o Microsoft Graph Toolkit roteando todas as chamadas para o Microsoft Graph por meio do seu próprio back-end.
Seu serviço de back-end deve expor uma API que será chamada para cada chamada ao Microsoft Graph. Por exemplo, quando um componente tenta obter um recurso, o ProxyProvider chamará sua API base e acrescentará esse recurso.
https://graph.microsoft.com/v1.0/me => https://myurl.com/api/GraphProxy/v1.0/me
Sua implementação de API deve então chamar o Microsoft Graph em nome do usuário e retornar os resultados para o componente.
Para obter um exemplo de implementação, consulte o exemplo ASP.NET MVC.
Para saber mais sobre provedores de autenticação, consulte provedores.
Introdução
Você pode inicializar o provedor proxy em HTML ou JavaScript. Você deve fazer isso apenas uma vez por página.
Inicializar em sua página HTML
Inicializar o provedor proxy em HTML é a maneira mais simples de definir sua própria rota para autenticação personalizada do lado do servidor. Use o mgt-proxy-provider
componente para definir o graph-proxy-url. Isso definirá o provedor proxy definido como o provedor global.
<mgt-proxy-provider
graph-proxy-url="https://myurl.com/api/GraphProxy"
></mgt-proxy-provider>
Atributo | Descrição |
---|---|
graph-proxy-url | URL base para a API de proxy. |
Inicializar no JavaScript
Você pode fornecer mais opções inicializando o provedor no JavaScript.
import { Providers } from "@microsoft/mgt-element";
import { ProxyProvider } from "@microsoft/mgt-proxy-provider";
Providers.globalProvider = new ProxyProvider(
"https://myurl.com/api/GraphProxy"
);
Opcionalmente, você pode enviar cabeçalhos adicionais com cada solicitação para sua api de proxy usando uma função opcional como o segundo parâmetro no construtor.
import { Providers } from "@microsoft/mgt-element";
import { ProxyProvider } from "@microsoft/mgt-proxy-provider";
Providers.globalProvider = new ProxyProvider(
"https://myurl.com/api/GraphProxy",
async () => {
return {
header: "value",
header2: "value2",
};
}
);
Isso é útil quando você precisa passar tokens ou outros cabeçalhos para o back-end.
Se você usar o mgt-login
componente, também deverá especificar as login
funções e logout
para o provedor:
import { Providers } from "@microsoft/mgt-element";
import { ProxyProvider } from "@microsoft/mgt-proxy-provider";
let provider = new ProxyProvider("https://myurl.com/api/GraphProxy");
provider.login = () => {
/* will be called when "Sign In" is clicked */
};
provider.logout = () => {
/* will be called when "Sign Out" is called */
};
Providers.globalProvider = provider;