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

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

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

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

如果您想通过其中一个内置提供程序使用 App Check,请参阅有关使用 reCAPTCHA v3进行App Check 和使用 reCAPTCHA Enterprise进行 App Check 的文档。

在你开始之前

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.初始化App Check

在您访问任何 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 库后,部署它。

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

监控指标并启用强制执行

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

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

启用 App Check 强制执行

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

在调试环境中使用 App Check

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

请参阅在 Web 应用程序中将 App Check 与调试提供程序一起使用

,

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

如果您想通过其中一个内置提供程序使用 App Check,请参阅有关使用 reCAPTCHA v3进行App Check 和使用 reCAPTCHA Enterprise进行 App Check 的文档。

在你开始之前

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.初始化App Check

在您访问任何 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 库后,部署它。

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

监控指标并启用强制执行

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

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

启用 App Check 强制执行

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

在调试环境中使用 App Check

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

请参阅在 Web 应用程序中将 App Check 与调试提供程序一起使用