Compartilhar via


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;