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

为 Cloud Functions 启用应用检查强制

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

要开始在可调用的 Cloud Functions 中执行 App Check 令牌要求,请修改您的函数以检查有效的 App Check 令牌,如下所示。启用强制执行后,所有未经验证的请求都将被拒绝。

  1. 将项目的firebase-functions依赖项更新到 4.0.0 或更高版本:

    npm install firebase-functions@">=4.0.0"
    

    并将项目的 firebase firebase-admin依赖项更新到 9.8.0 或更高版本:

    npm install firebase-admin@">=9.8.0"
    
  2. 将函数的enforceAppCheck运行时选项设置为true

    exports.yourCallableFunction = functions.
      .runWith({
        enforceAppCheck: true  // Requests without valid App Check tokens will be rejected.
      })
      .https.onCall((data, context) => {
        // Your function logic follows.
      });
    
  3. 在您的函数中添加对context.app的检查。如果未定义context.app ,您的函数应该会失败。

    exports.yourCallableFunction = functions.https.onCall((data, context) => {
      // context.app will be undefined if the request doesn't include an
      // App Check token. (If the request includes an invalid App Check
      // token, the request will be rejected with HTTP error 401.)
      if (context.app == undefined) {
        throw new functions.https.HttpsError(
            'failed-precondition',
            'The function must be called from an App Check verified app.')
      }
    
      // Your function logic follows.
    });
    
  4. 重新部署您的功能:

    firebase deploy --only functions
    

部署这些更改后,您的可调用 Cloud Functions 将需要有效的 App Check 令牌。当您调用可调用函数时,Cloud Functions 客户端 SDK 会自动附加应用检查令牌。