代理服务器提供商

使用代理提供程序时,可以使用后端身份验证 ((例如 Auth2.0 代理流) )通过自己的后端路由到 Microsoft Graph 的所有调用来为 Microsoft Graph 工具包提供支持。

后端服务必须公开每次调用 Microsoft Graph 时都会调用的 API。 例如,当组件尝试获取资源时,ProxyProvider 将改为调用基 API 并追加该资源。

https://graph.microsoft.com/v1.0/me => https://myurl.com/api/GraphProxy/v1.0/me

然后,API 实现应代表用户调用 Microsoft Graph,并将结果返回给组件。

有关实现示例,请参阅 ASP.NET MVC 示例

若要详细了解身份验证提供程序,请参阅 提供程序

入门

可以使用 HTML 或 JavaScript 初始化代理提供程序。 每页只能执行此操作一次。

在 HTML 页中初始化

在 HTML 中初始化代理提供程序是定义自己的自定义服务器端身份验证路由的最简单方法。 mgt-proxy-provider使用 组件设置 graph-proxy-url。 这会将定义的代理提供程序设置为全局提供程序。

<mgt-proxy-provider
  graph-proxy-url="https://myurl.com/api/GraphProxy"
></mgt-proxy-provider>
属性 说明
graph-proxy-url 代理 API 的基 URL。

在 JavaScript 中初始化

可以通过在 JavaScript 中初始化提供程序来提供更多选项。

import { Providers } from "@microsoft/mgt-element";
import { ProxyProvider } from "@microsoft/mgt-proxy-provider";

Providers.globalProvider = new ProxyProvider(
  "https://myurl.com/api/GraphProxy"
);

(可选)可以将每个请求的其他标头发送到代理 API,方法是使用可选函数作为构造函数中的第二个参数。

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",
    };
  }
);

当需要将令牌或其他标头传递到后端时,这很有用。

如果要使用 组件 mgt-login ,还应为提供程序指定 loginlogout 函数:

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;