2022 年 10 月 18 日に開催される Firebase Summit に、直接会場で、またはオンラインでご参加ください。Firebase を使用してアプリ開発を加速させ、自信を持ってアプリをリリースし、簡単にスケールする方法をご紹介します。 今すぐ登録

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

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

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

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

あなたが始める前に

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

トークンを確認する

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

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

  • Admin 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.
});