Catch up on everthing we announced at this year's Firebase Summit. Learn more

カスタムバックエンドからのアプリチェックトークンを確認する

App Checkを使用すると、自己ホスト型バックエンドなど、アプリのFirebase以外のリソースを保護できます。これを行うには、次の両方を行う必要があります。

  • アプリのクライアントがのためのページで説明したように、バックエンドへの各要求と共にトークンチェックのアプリケーションを送信するために変更のiOS +アンドロイド、およびウェブ
  • このページで説明されているように、リクエストごとに有効なアプリチェックトークンを要求するようにバックエンドを変更します。

あなたが始める前に

既にインストールしていない場合のNode.js管理SDK 、そう。

トークンを確認する

バックエンドでAppCheckトークンを確認するには、APIエンドポイントに次のロジックを追加します。

  • 各リクエストにアプリチェックトークンが含まれていることを確認します。

  • 管理SDKの使用トークンアプリのチェックを確認しappCheck().verifyToken()メソッドを。

    検証が成功した場合、 verifyToken() 、復号アプリケーションはトークンチェックを返します。検証が成功すると、トークンがFirebaseプロジェクトに属するアプリから発信されたことが示されます。

いずれかのチェックに失敗したリクエストを拒否します。たとえば、Express.jsミドルウェアを使用すると次のようになります。

const express = require('express');
const app = express();

const firebaseAdmin = require('firebase-admin');
const firebaseApp = firebaseAdmin.initializeApp();

const appCheckVerification = async (req, res, next) => {
    const appCheckToken = req.header('X-Firebase-AppCheck');

    if (!appCheckToken) {
        res.status(401);
        return next('Unauthorized');
    }

    try {
        const appCheckClaims = await firebaseAdmin.appCheck().verifyToken(appCheckToken);

        // If verifyToken() succeeds, continue with the next middleware
        // function in the stack.
        return next();
    } catch (err) {
        res.status(401);
        return next('Unauthorized');
    }
}

app.get('/yourApiEndpoint', [appCheckVerification], (req, res) => {
    // Handle request.
});