获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

通过 Web 应用程序上的自定义提供程序开始使用 App Check

此页面向您展示如何使用您的自定义 App Check 提供程序在 Web 应用程序中启用 App Check。当您启用 App Check 时,您有助于确保只有您的应用可以访问您项目的 Firebase 资源。

如果您想将 App Check 与内置提供程序之一一起使用,请参阅App Check with reCAPTCHA v3App Check with reCAPTCHA Enterprise的文档。

在你开始之前

1. 将 App Check 库添加到您的应用中

如果您还没有将 Firebase 添加到您的网络应用程序中。请务必导入 App Check 库。

2. 创建 App Check 提供者对象

为您的自定义提供程序创建一个 App Check 提供程序对象。此对象必须有一个getToken()方法,该方法收集您的自定义 App Check 提供程序作为真实性证明所需的任何信息,并将其发送到您的令牌获取服务以换取 App Check 令牌。 App Check SDK 处理令牌缓存,因此始终在您的getToken()实现中获取新令牌。

Web version 9

const { CustomProvider } = require("firebase/app-check");

const appCheckCustomProvider = new CustomProvider({
  getToken: () => {
    return new Promise((resolve, _reject) => {
      // TODO: Logic to exchange proof of authenticity for an App Check token and
      // expiration time.

      // ...

      const appCheckToken = {
        token: tokenFromServer,
        expireTimeMillis: expirationFromServer * 1000
      };

      resolve(appCheckToken);
    });
  }
});

Web version 8

const appCheckCustomProvider = {
  getToken: () => {
    return new Promise((resolve, _reject) => {
      // TODO: Logic to exchange proof of authenticity for an App Check token and
      // expiration time.

      // ...

      const appCheckToken = {
        token: tokenFromServer,
        expireTimeMillis: expirationFromServer * 1000
      };

      resolve(appCheckToken);
    });
  }
};

3.初始化应用检查

在您访问任何 Firebase 服务之前,将以下初始化代码添加到您的应用程序中:

Web version 9

const { initializeApp } = require("firebase/app");
const { initializeAppCheck } = require("firebase/app-check");

const app = initializeApp({
  // Your firebase configuration object
});

const appCheck = initializeAppCheck(app, {
  provider: appCheckCustomProvider,

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  isTokenAutoRefreshEnabled: true    
});

Web version 8

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
appCheck.activate(
  appCheckCustomProvider,

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  true);

下一步

在您的应用中安装 App Check 库后,部署它。

更新后的客户端应用将开始向 Firebase 发出的每个请求发送 App Check 令牌,但 Firebase 产品不需要令牌有效,直到您在 Firebase 控制台的 App Check 部分启用强制执行。

监控指标并启用强制执行

但是,在启用强制执行之前,您应该确保这样做不会破坏您现有的合法用户。另一方面,如果您发现对应用资源的使用可疑,您可能希望尽快启用强制执行。

为了帮助做出此决定,您可以查看您使用的服务的 App Check 指标:

启用应用检查强制

当您了解 App Check 将如何影响您的用户并准备好继续时,您可以启用 App Check 强制:

在调试环境中使用 App Check

如果在您为 App Check 注册了您的应用程序后,您希望在 App Check 通常不会归类为有效的环境中运行您的应用程序,例如在开发期间本地运行,或者从持续集成 (CI) 环境中运行您的应用程序,您可以创建使用 App Check 调试提供程序而不是真正的证明提供程序的应用程序的调试版本。

请参阅在 Web 应用程序中通过调试提供程序使用应用程序检查