Stato di passaggio nelle azioni e-mail

Puoi trasmettere lo stato tramite un URL di continuazione durante l'invio di azioni email per la password reimposta o verifica l'email di un utente. In questo modo, l'utente può tornare all'app al termine dell'azione. Inoltre, puoi specificare se gestire il link all'azione email direttamente da un'applicazione mobile quando è installata anziché da una pagina web.

Ciò può essere estremamente utile nei seguenti scenari comuni:

  • Un utente che al momento non ha eseguito l'accesso potrebbe tentare di accedere a contenuti che richiedono l'accesso. Tuttavia, l'utente potrebbe aver dimenticato la password e quindi attivare il flusso di reimpostazione della password. Alla fine flusso, l'utente si aspetta di tornare alla sezione dell'app in cui provare ad accedere.

  • Un'applicazione può offrire l'accesso solo ad account verificati. Ad esempio, per iscriversi a una newsletter l'utente potrebbe dover verificare il proprio indirizzo email. L'utente deve completare il flusso di verifica email e poi tornare all'app per completare l'abbonamento.

  • In altri casi, l'utente potrebbe aver avviato il flusso dal proprio dispositivo mobile e dopo la verifica si aspetta di tornare all'app mobile anziché al browser.

La possibilità di trasmettere lo stato tramite un URL continuo è una funzionalità potente che Firebase Auth fornisce funzionalità che possono migliorare significativamente l'esperienza utente.

URL di trasmissione/continuazione dello stato nelle azioni email

Per passare in modo sicuro un URL di continuazione, il dominio dell'URL dovrà essere aggiunto come dominio autorizzato nella console Firebase. Per farlo, vai alla sezione Autenticazione e aggiungi il dominio all'elenco di domini autorizzati nella scheda Metodo di accesso, se non è già presente.

È necessario fornire un'istanza firebase.auth.ActionCodeSettings durante l'invio un'email di reimpostazione della password o un'email di verifica. Questa interfaccia accetta i seguenti parametri:

Parametro Tipo Descrizione
url stringa

Imposta il link (URL di stato/continua) che ha significati diversi. in diversi contesti:

  • Quando il link viene gestito nei widget di azioni web, si tratta del link diretto nel parametro di query continueUrl.
  • Quando il link viene gestito direttamente nell'app, si tratta del continueUrl parametro di query nel link diretto del link dinamico.
iOS ({bundleId: string}|undefined) Imposta l'ID bundle iOS. Verrà tentato di aprire il link in un'app per iOS, se è installata. L'app per iOS deve essere registrata nella console.
android ({packageName: string, installApp:boolean|undefined, minimaVersion: string|undefined}|non definita) Imposta il nome del pacchetto Android. Verrà tentato di aprire il link in un'app Android se è installata. Se viene superato il criterio installApp, specifica se installare l'app per Android se il dispositivo la supporta e l'app non è già installata. Se questo campo viene fornito senza packageName, viene generato un errore che spiega che packageName deve essere specificato insieme a questo campo. Se viene specificato minimumVersion ed è installata una versione precedente dell'app, l'utente viene indirizzato al Play Store per eseguire l'upgrade dell'app. L'app per Android deve essere registrata in Console.
handleCodeInApp (booleano|non definito) Se il link di azione dell'email verrà aperto in un'app mobile o sul web prima il link. Il valore predefinito è false. Se impostato su true, il link al codice di azione verrà inviato come link universale o link app Android e verrà aperto dall'app, se installata. Nel caso falso, il codice verrà inviato prima al widget web e poi al continuare reindirizzerà all'app se installata.
dynamicLinkDomain (stringa|non definita) Imposta il dominio (o sottodominio) del link dinamico da utilizzare per il link corrente se deve essere aperto utilizzando Firebase Dynamic Links. Come più dinamiche i domini dei link possono essere configurati per progetto. Questo campo fornisce la possibilità di sceglierne esplicitamente uno. Se non viene specificato alcun dominio, per impostazione predefinita viene utilizzato il primo.

L'esempio seguente illustra come inviare un link di verifica email che si aprirà in un'app mobile come link dinamico Firebase utilizzando dominio del link dinamico example.page.link (App per iOS com.example.ios o app per Android com.example.android in cui l'app verrà installata se non è già installata e la versione minima è 12). La Il link diretto conterrà il payload per l'URL continuo https://www.example.com/?email=user@example.com.

var actionCodeSettings = {
  url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email,
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  },
  handleCodeInApp: true,
  // When multiple custom dynamic link domains are defined, specify which
  // one to use.
  dynamicLinkDomain: "example.page.link"
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
  .then(function() {
    // Verification email sent.
  })
  .catch(function(error) {
    // Error occurred. Inspect error.code.
  });

Firebase Auth utilizza Firebase Dynamic Links per l'invio di una che deve essere aperto in un'applicazione mobile. Per utilizzare questa funzionalità, i link dinamici devono essere configurati nella console di Firebase.

  1. Attiva Firebase Dynamic Links:

    1. Nella console Firebase, apri la sezione Dynamic Links.
    2. Se non hai ancora accettato i termini di Dynamic Links e creato un dominio Dynamic Links, fallo ora.

      Se hai già creato un dominio Dynamic Links, prendine nota. Un dominio Dynamic Links è simile al seguente esempio:

      example.page.link

      Questo valore ti servirà quando configuri la tua app per Apple o Android in modo da intercettare il link in arrivo.

  2. Configurazione delle applicazioni Android:

    1. Se prevedi di gestire questi link dalla tua applicazione per Android, il nome del pacchetto Android deve essere specificato nelle impostazioni del progetto della Console Firebase. Inoltre, devono essere forniti gli hash SHA-1 e SHA-256 del certificato dell'applicazione.
    2. Dovrai anche configurare il filtro per intent per il link diretto nel file AndroidManifest.xml.
    3. Per saperne di più, consulta Ricezione delle istruzioni di Android Dynamic Links.
  3. Configurazione delle applicazioni per iOS:

    1. Se prevedi di gestire questi link dalla tua applicazione per iOS, l'ID pacchetto iOS deve essere specificato nelle impostazioni del progetto della Console Firebase. Inoltre, è necessario specificare anche l'ID App Store e l'ID team sviluppatore Apple.
    2. Dovrai anche configurare il dominio del link universale FDL come Domini associati nelle funzionalità dell'applicazione.
    3. Se prevedi di distribuire la tua applicazione per le versioni di iOS 8 e precedenti, dovrai impostare l'ID pacchetto iOS come schema personalizzato per gli URL incoming.
    4. Per saperne di più, consulta Istruzioni per la ricezione dei link dinamici per iOS.

Gestione delle azioni email in un'applicazione web

Puoi specificare se vuoi gestire il link del codice di azione da un sito web prima l'applicazione e poi reindirizzare a un'altra pagina web o applicazione mobile dopo il completamento, a condizione che l'applicazione mobile sia disponibile. A tale scopo, imposta handleCodeInApp su false nell'oggetto firebase.auth.ActionCodeSettings. Mentre un ID bundle iOS o il nome del pacchetto Android, se li specifichi consentirai all'utente per reindirizzare all'app specificata al completamento del codice di azione dell'email.

L'URL web utilizzato qui è quello configurato nei modelli di azioni email . Per tutti i progetti viene eseguito il provisioning di un valore predefinito. Per saperne di più su come personalizzare il gestore delle azioni email, consulta la sezione sulla personalizzazione dei gestori email.

In questo caso, il link all'interno del parametro di query continueUrl sarà un link FDL il cui payload è il URL specificato nell'oggetto ActionCodeSettings. Anche se puoi intercettare e gestire il link in arrivo dalla tua app senza dipendenze aggiuntive, ti consigliamo di utilizzare la libreria client FDL per analizzare il link diretto per te.

Quando gestisci azioni email come la verifica email, il codice di azione del parametro di query oobCode deve essere analizzato dal link diretto e poi applicato tramite applyActionCode affinché la modifica venga applicata, ovvero l'email venga verificata.

Gestione delle azioni email in un'applicazione mobile

Puoi specificare se vuoi gestire prima il collegamento del codice di azione all'interno della tua app mobile, a condizione che sia installata. Con le applicazioni per Android, puoi anche specificare tramite android.installApp che l'app deve essere installata se il dispositivo la supporta e non è già installata. Se il link viene fatto clic da un dispositivo che non supporta l'applicazione mobile, viene aperto da una pagina web. A tale scopo, imposta handleCodeInApp su true nell'oggetto firebase.auth.ActionCodeSettings. Dovrà essere specificato anche il nome del pacchetto Android o l'ID bundle iOS dell'applicazione mobile.

L'URL web di riserva utilizzato qui, quando non sono disponibili app mobile, è quello configurati nella sezione dei modelli di azioni email. È stato eseguito il provisioning di uno predefinito per tutti i progetti. Consulta personalizzazione dei gestori delle email per scoprire di più come personalizzare il gestore di azioni email.

In questo caso, il link dell'app mobile inviato all'utente sarà un link FDL la cui payload è l'URL del codice di azione, configurato nella console, con la query parametri oobCode, mode, apiKey e continueUrl. Quest'ultimo sarà il URL originale specificato nell'oggetto ActionCodeSettings. Sebbene tu possa intercettare e gestire il link in arrivo dalla tua app senza dipendenze aggiuntive, ti consigliamo di utilizzare la libreria client FDL per analizzare il link diretto al posto tuo. Il codice di azione può essere applicato direttamente da un'applicazione mobile in modo simile a come viene gestito dal flusso web descritto nella sezione sulla personalizzazione dei gestori email.

Quando si gestiscono azioni email come la verifica email, il codice di azione dal oobCode parametro di query deve essere analizzato dal link diretto e poi applicato tramite applyActionCode per rendere effettiva la modifica, ovvero l'indirizzo email da verificare.