Stato di passaggio nelle azioni e-mail

Puoi passare lo stato tramite un URL di continuazione quando invii azioni email per il ripristino della password o la verifica dell'email di un utente. In questo modo, l'utente può essere reindirizzato 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 non ha eseguito l'accesso potrebbe tentare di accedere a contenuti che richiede che l'utente abbia eseguito l'accesso. Tuttavia, l'utente potrebbe aver dimenticato la password e quindi attivare il flusso di reimpostazione della password. Al termine del flusso, l'utente si aspetta di tornare alla sezione dell'app a cui stava tentando di accedere.

  • Un'applicazione può offrire l'accesso solo ad account verificati. Per Ad esempio, un'app di newsletter può richiedere all'utente di verificare il proprio indirizzo email prima iscrivendoti. L'utente seguiva la procedura di verifica dell'email e si aspettava da restituire all'app per completare l'abbonamento.

  • In genere, quando un utente avvia una procedura di reimpostazione della password o di verifica email su un'app Apple, si aspetta di completarla all'interno dell'app. La possibilità di passare lo stato tramite l'URL di continuazione rende tutto ciò possibile.

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.

Trasmissione dell'URL di stato/continuazione nelle azioni email

Per trasmettere in modo sicuro un URL Continua, il dominio dell'URL deve inserito nella lista consentita nella console Firebase. Questa operazione viene eseguita nella sezione Autenticazione aggiungendo il dominio alla sezione di Domini autorizzati nella scheda Metodo di accesso, se non è già presente.

È necessario fornire un'istanza ActionCodeSettings durante l'invio un'email di reimpostazione della password o un'email di verifica. Questa interfaccia utilizza 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 delle azioni web, si tratta della nel parametro di query continueUrl.
  • Quando il link viene gestito direttamente nell'app, si tratta della continueUrl parametro di query nel link diretto della Link dinamico.
iOSBundleId Stringa Imposta l'ID pacchetto. Questo proverà ad aprire il link in un'app Apple se dal momento dell'installazione. L'app deve essere registrata nella console. Se non viene fornito alcun ID gruppo, il valore di questo campo viene impostato sull'ID gruppo del gruppo principale dell'app.
androidPackageName Stringa Imposta il nome del pacchetto Android. Questo proverà ad aprire il link in un app per Android, se installata.
androidInstallApp bool 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 il valore packageName deve essere forniti insieme a questo campo.
androidMinimumVersion Stringa La versione minima dell'app supportata in questo flusso. Se è specificata la versione minima e viene installata una versione precedente dell'app. l'utente viene indirizzato al Play Store per eseguire l'upgrade dell'app. App per Android deve essere registrato nella console.
handleCodeInApp bool 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 del codice di azione verrà inviato come link universale o link per 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 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.

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

final user = FirebaseAuth.instance.currentUser;

final actionCodeSettings = ActionCodeSettings(
  url: "http://www.example.com/verify?email=${user?.email}",
  iOSBundleId: "com.example.ios",
  androidPackageName: "com.example.android",
);

await user?.sendEmailVerification(actionCodeSettings);

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

  1. Abilita Firebase Dynamic Links:

    1. Nella console Firebase, apri la sezione Link dinamici.

    2. Se non hai ancora accettato i termini di Dynamic Links e creato un dominio Dinamici, fallo ora.

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

      example.page.link

    4. Questo valore ti servirà quando configuri l'app Apple o Android per per intercettare il link in entrata.

  2. Configurazione delle applicazioni Android:

    1. Se prevedi di gestire questi link dalla tua applicazione Android, i Il nome del pacchetto Android deve essere specificato nella console Firebase impostazioni progetto. Inoltre, i campi SHA-1 e SHA-256 dell'applicazione devi fornire il tuo certificato.
    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 Apple:

    1. Se prevedi di gestire questi link dalla tua applicazione, L'ID pacchetto deve essere specificato nella console Firebase impostazioni progetto. Inoltre, l'ID App Store e l'ID Apple Developer È necessario specificare anche l'ID team.
    2. Dovrai inoltre configurare il dominio del link universale FDL come Dominio associato nelle funzionalità dell'applicazione.
    3. Se prevedi di distribuire la tua applicazione a iOS 8 e versioni precedenti, devi impostare l'ID pacchetto come schema personalizzato per le URL.
    4. Per saperne di più, consulta Ricezione delle istruzioni per i link dinamici delle piattaforme Apple.

Gestione delle azioni email in un'applicazione web

Puoi specificare se vuoi gestire prima il link al codice di azione da un'applicazione web e poi reindirizzare a un'altra pagina web o applicazione mobile al termine dell'operazione, a condizione che l'applicazione mobile sia disponibile. Per farlo, imposta handleCodeInApp su false nell'oggetto ActionCodeSettings. Mentre un ID pacchetto 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 uno predefinito. Per saperne di più su come personalizzare il gestore delle azioni email, consulta la sezione relativa alla personalizzazione dei gestori email.

In questo caso, il link nel parametro di query continueURL verrà un link FDL il cui payload è URL specificato in ActionCodeSettings . Anche se puoi intercettare e gestire il link in arrivo dalla tua app senza ulteriori dipendenze, consigliamo di utilizzare la libreria client FDL analizzare il link diretto.

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.

Gestione delle azioni email in un'applicazione mobile

Puoi specificare se desideri gestire il link del codice dell'azione all'interno del tuo per prima cosa, a condizione che sia installata. Con le app per Android, puoi anche specificare, tramite il androidInstallApp, che l'app deve essere installata se il dispositivo la supporta e non è già installato. 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 ActionCodeSettings. La devono essere presenti anche il nome o l'ID pacchetto Android dell'app mobile specificato.L'URL web di riserva utilizzato qui, quando non sono disponibili app mobile, quello configurato nella sezione dei modelli di azione email. Quella predefinita è per tutti i progetti. 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 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 l'elemento URL originale specificato in Oggetto ActionCodeSettings. Sebbene tu possa intercettare e gestire il link in entrata dalla tua app senza dipendenze aggiuntive, ti consigliamo di utilizzare la libreria client FDL per analizzare il link diretto per te. Il codice di azione può essere applicata direttamente da un'applicazione mobile in modo simile alla gestione il flusso web descritto in personalizzazione dei gestori delle 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.