Utilizzare App Check con il provider di debug nelle app web

Dopo che App Check è stato applicato a un servizio di backend, le funzionalità dell'app che dipendono da quel servizio di backend non verranno eseguite da localhost o da un ambiente di integrazione continua (CI) perché questi ambienti non sono considerati dispositivi validi. Per eseguire l'app in questi ambienti durante lo sviluppo e il test, devi creare una build di debug dell'app che utilizzi il App Check provider di debug di App Check anziché un provider di attestazione di produzione.

Utilizzare il provider di debug su localhost

Ecco come utilizzare il provider di debug durante l'esecuzione dell'app da localhost (ad esempio, durante lo sviluppo locale):

  1. Nella build di debug, attiva la modalità di debug impostando self.FIREBASE_APPCHECK_DEBUG_TOKEN su true prima di inizializzare App Check. Ad esempio:

    Web

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
    initializeAppCheck(app, { /* App Check options */ });
    

    Web

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
    firebase.appCheck().activate(/* site key or provider */);
    
  2. Visita la tua app web in locale e apri gli strumenti per sviluppatori del browser. Nella console di debug, vedrai un token di debug:

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678".
    You will need to safelist it in the Firebase console for it to work.
    
  3. Registra il token di debug con App Check:

    1. Nella console Firebase, vai alla scheda Sicurezza > App Check > App.

    2. Trova la tua app, fai clic sul menu extra () e poi seleziona Gestisci token di debug.

    3. Segui le istruzioni sullo schermo per registrare il token di debug.

    Screenshot della voce di menu Gestisci token di debug nella console Firebase

Dopo aver registrato il token con App Check, i servizi di backend lo accetteranno come valido.

Questo token consente l'accesso ai servizi di backend senza un dispositivo valido, quindi è fondamentale mantenerlo privato. Non eseguirne il commit in un repository pubblico o spedirlo nelle build di produzione dell'app. Se un token registrato viene compromesso, eliminalo immediatamente utilizzando Gestisci token di debug nella Firebase console.

Questo token viene memorizzato localmente nel browser e verrà utilizzato ogni volta che utilizzi l'app nello stesso browser sulla stessa macchina. Se vuoi utilizzare il token in un altro browser o su un'altra macchina, imposta self.FIREBASE_APPCHECK_DEBUG_TOKEN sulla stringa del token anziché su true.

Utilizzare il provider di debug in un ambiente CI

Ecco come utilizzare il provider di debug in un ambiente di integrazione continua (CI):

  1. Nella console Firebase, crea un token di debug:

    1. Nella console Firebase, vai alla scheda Sicurezza > App Check > App.

    2. Trova la tua app, fai clic sul menu extra () e poi seleziona Gestisci token di debug.

    3. Segui le istruzioni sullo schermo per creare un nuovo token di debug.

    Questo token consente l'accesso ai servizi di backend senza un dispositivo valido, quindi è fondamentale mantenerlo privato. Non eseguirne il commit in un repository pubblico o spedirlo nelle build di produzione dell'app. Se un token registrato viene compromesso, eliminalo immediatamente utilizzando Gestisci token di debug nella Firebase console.

    Screenshot della voce di menu Gestisci token di debug

  2. Aggiungi il token di debug appena creato all'archivio di chiavi sicure del sistema CI (ad esempio, i secret criptati di GitHub Actions o le variabili criptate di Travis CI).

  3. Se necessario, configura il sistema CI in modo che il token di debug sia disponibile nell'ambiente CI come variabile di ambiente. Assegna alla variabile un nome simile a APP_CHECK_DEBUG_TOKEN_FROM_CI.

  4. Nella build di debug, attiva la modalità di debug impostando self.FIREBASE_APPCHECK_DEBUG_TOKEN sul valore della variabile di ambiente del token di debug prima di importare App Check. Ad esempio:

    Web

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = process.env.APP_CHECK_DEBUG_TOKEN_FROM_CI;
    initializeAppCheck(app, { /* App Check options */ });
    

    Web

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = process.env.APP_CHECK_DEBUG_TOKEN_FROM_CI;
    firebase.appCheck().activate(/* site key or provider */);
    

Quando l'app viene eseguita in un ambiente CI, i servizi di backend accetteranno il token inviato come valido.