Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

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

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

App Check を使用すると、セルフホステッド バックエンドなど、アプリの Firebase 以外のリソースを保護できます。そのためには、次の両方を行う必要があります。

  • iOS+Android 、およびwebのページで説明されているように、アプリ クライアントを変更して、バックエンドへの各要求と共に App Check トークンを送信します。
  • このページで説明されているように、すべてのリクエストで有効な App Check トークンを要求するようにバックエンドを変更します。

あなたが始める前に

Node.js Admin SDKをまだインストールしていない場合は、インストールしてください。

トークンを確認する

バックエンドで App Check トークンを検証するには、API エンドポイントに次の処理を行うロジックを追加します。

  • 各リクエストに App Check トークンが含まれていることを確認します。

  • Admin SDK のappCheck().verifyToken()メソッドを使用して App Check トークンを確認します。

    検証が成功すると、 verifyToken()はデコードされた App Check トークンを返します。検証が成功すると、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.
});