Flutter プロジェクトで App Check を使用してカスタム バックエンド リソースを保護する

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

  • このページで説明するように、各リクエストとともに App Check トークンをバックエンドに送信するようにアプリ クライアントを変更します。
  • カスタム バックエンドからの App Check トークンの検証の説明のように、リクエストごとに有効な App Check トークンを要求するようにバックエンドを変更します。

始める前に

デフォルトのプロバイダを使用して、アプリに App Check を追加します。

バックエンド リクエストと一緒に App Check トークンを送信する

期限切れでない、有効な App Check トークンをバックエンド リクエストに含めるには、getToken() の呼び出しで各リクエストを開始します。App Check ライブラリが、必要に応じてトークンを更新します。

有効なトークンを取得したら、リクエストと一緒にバックエンドに送信します。具体的な方法は自由に決めることができますが、クエリ パラメータや URL の一部として App Check トークンを送信しないでください。漏えいや傍受のリスクが高まります。カスタム HTTP ヘッダーでトークンを送信することをおすすめします。

次に例を示します。

void callApiExample() async {
    final appCheckToken = await FirebaseAppCheck.instance.getToken();
    if (appCheckToken != null) {
        final response = await http.get(
            Uri.parse("https://yourbackend.example.com/yourExampleEndpoint"),
            headers: {"X-Firebase-AppCheck": appCheckToken},
        );
    } else {
        // Error: couldn't get an App Check token.
    }
}