Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Aprobación de estado en acciones de correo electrónico

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Puede pasar el estado a través de una URL de continuación al enviar acciones de correo electrónico para restablecer la contraseña o verificar el correo electrónico de un usuario. Esto proporciona al usuario la posibilidad de volver a la aplicación después de que se complete la acción. Además, puede especificar si desea manejar el enlace de acción de correo electrónico directamente desde una aplicación móvil cuando se instala en lugar de una página web.

Esto puede ser extremadamente útil en los siguientes escenarios comunes:

  • Un usuario que no haya iniciado sesión actualmente puede estar intentando acceder a contenido que requiere que el usuario inicie sesión. Sin embargo, es posible que el usuario haya olvidado su contraseña y, por lo tanto, active el flujo de restablecimiento de contraseña. Al final del flujo, el usuario espera volver a la sección de la aplicación a la que intentaba acceder.

  • Una aplicación solo puede ofrecer acceso a cuentas verificadas. Por ejemplo, una aplicación de boletín informativo puede requerir que el usuario verifique su correo electrónico antes de suscribirse. El usuario pasaría por el flujo de verificación de correo electrónico y esperaría volver a la aplicación para completar su suscripción.

  • En general, cuando un usuario inicia un flujo de restablecimiento de contraseña o verificación de correo electrónico en una aplicación de Apple, espera completar el flujo dentro de la aplicación; la capacidad de pasar el estado a través de la URL de continuación lo hace posible.

Tener la capacidad de pasar el estado a través de una URL de continuación es una característica poderosa que proporciona Firebase Auth y que puede mejorar significativamente la experiencia del usuario.

Pasar estado/continuar URL en acciones de correo electrónico

Para pasar de forma segura una URL de continuación, el dominio de la URL deberá incluirse en la lista blanca de la consola de Firebase . Esto se hace en la sección Autenticación agregando este dominio a la lista de Dominios autorizados en la pestaña Método de inicio de sesión si aún no está allí.

Se debe proporcionar una instancia de FIRActionCodeSettings al enviar un correo electrónico de restablecimiento de contraseña o un correo electrónico de verificación. Esta interfaz toma los siguientes parámetros:

Rápido

Parámetro Escribe Descripción
URL Cuerda

Establece el enlace (indicar/continuar URL) que tiene diferentes significados en diferentes contextos:

  • Cuando el enlace se maneja en los widgets de acción web, este es el enlace profundo en el parámetro de consulta continueUrl .
  • Cuando el enlace se maneja directamente en la aplicación, este es el parámetro de consulta continueUrl en el enlace profundo del enlace dinámico.
iOSBundleID Cuerda Establece el ID del paquete. Esto intentará abrir el enlace en una aplicación de Apple si está instalada. La aplicación debe estar registrada en la Consola. Si no se proporciona un ID de paquete, el valor de este campo se establece en el ID de paquete del paquete principal de la aplicación.
androidPackageName Cuerda Establece el nombre del paquete de Android. Esto intentará abrir el enlace en una aplicación de Android si está instalada.
androidInstallIfNotAvailable bool Especifica si instalar la aplicación de Android si el dispositivo la admite y la aplicación aún no está instalada. Si este campo se proporciona sin un nombre de paquete, se genera un error que explica que el nombre de paquete se debe proporcionar junto con este campo.
androidMinimumVersion Cuerda La versión mínima de la aplicación que se admite en este flujo. Si se especifica la versión mínima y se instala una versión anterior de la aplicación, se lleva al usuario a Play Store para actualizar la aplicación. La aplicación de Android debe estar registrada en la consola.
handleCodeInApp bool Si el enlace de acción de correo electrónico se abrirá primero en una aplicación móvil o en un enlace web. El valor predeterminado es falso. Cuando se establece en verdadero, el enlace del código de acción se enviará como un enlace universal o un enlace de aplicación de Android y la aplicación lo abrirá si está instalada. En el caso falso, el código se enviará primero al widget web y luego, al continuar, se redirigirá a la aplicación, si está instalada.
dynamicLinkDomain Cuerda Establece el dominio de enlace dinámico (o subdominio) que se usará para el enlace actual si se va a abrir con Firebase Dynamic Links. Como se pueden configurar varios dominios de vínculos dinámicos por proyecto, este campo ofrece la posibilidad de elegir uno de forma explícita. Si no se proporciona ninguno, el primer dominio se utiliza de forma predeterminada.

C objetivo

Parámetro Escribe Descripción
URL NSCadena

Establece el enlace (indicar/continuar URL) que tiene diferentes significados en diferentes contextos:

  • Cuando el enlace se maneja en los widgets de acción web, este es el enlace profundo en el parámetro de consulta continueUrl .
  • Cuando el enlace se maneja directamente en la aplicación, este es el parámetro de consulta continueUrl en el enlace profundo del enlace dinámico.
iOSBundleID NSCadena Establece el ID del paquete. Esto intentará abrir el enlace en una aplicación de Apple si está instalada. La aplicación debe estar registrada en la Consola.
androidPackageName NSCadena Establece el nombre del paquete de Android. Esto intentará abrir el enlace en una aplicación de Android si está instalada.
androidInstallIfNotAvailable BOOL especifica si instalar la aplicación de Android si el dispositivo la admite y la aplicación aún no está instalada. Si este campo se proporciona sin un nombre de paquete, se genera un error que explica que el nombre de paquete se debe proporcionar junto con este campo.
androidMinimumVersion NSCadena La versión mínima de la aplicación que se admite en este flujo. Si se especifica la versión mínima y se instala una versión anterior de la aplicación, se lleva al usuario a Play Store para actualizar la aplicación. La aplicación de Android debe estar registrada en la Consola.
handleCodeInApp BOOL Si el enlace de acción de correo electrónico se abrirá primero en una aplicación móvil o en un enlace web. El valor predeterminado es falso. Cuando se establece en verdadero, el enlace del código de acción se enviará como un enlace universal o un enlace de aplicación de Android y la aplicación lo abrirá si está instalada. En el caso falso, el código se enviará primero al widget web y luego, al continuar, se redirigirá a la aplicación, si está instalada.
dynamicLinkDomain NSCadena Establece el dominio de enlace dinámico (o subdominio) que se usará para el enlace actual si se va a abrir con Firebase Dynamic Links. Como se pueden configurar varios dominios de vínculos dinámicos por proyecto, este campo ofrece la posibilidad de elegir uno de forma explícita. Si no se proporciona ninguno, el primer dominio se utiliza de forma predeterminada.

El siguiente ejemplo ilustra cómo enviar un enlace de verificación por correo electrónico que se abrirá primero en una aplicación móvil como un enlace dinámico de Firebase mediante el dominio de enlace dinámico personalizado example.page.link (aplicación de iOS com.example.ios o aplicación de Android com.example.android donde se instalará la aplicación si aún no está instalada y la versión mínima es 12 ). El enlace profundo contendrá la carga útil de la URL de continuación https://www.example.com/?email=user@example.com .

Rápido


var actionCodeSettings =  ActionCodeSettings.init()
actionCodeSettings.canHandleInApp = true
let user = Auth.auth().currentUser()
actionCodeSettings.URL =
    String(format: "https://www.example.com/?email=%@", user.email)
actionCodeSettings.iOSbundleID = Bundle.main.bundleIdentifier!
actionCodeSettings.setAndroidPakageName("com.example.android",
                                         installIfNotAvailable:true,
                                         minumumVersion:"12")
// When multiple custom dynamic link domains are defined, specify which one to use.
actionCodeSettings.dynamicLinkDomain = "example.page.link"
user.sendEmailVerification(withActionCodeSettings:actionCodeSettings { error in
  if error {
    // Error occurred. Inspect error.code and handle error.
    return
  }
  // Email verification sent.
})

C objetivo

 FIRActionCodeSettings *actionCodeSettings = [[FIRActionCodeSettings alloc] init];
 actionCodeSettings.handleCodeInApp = YES;
 FIRUser *user = [FIRAuth auth].currentUser;
 NSString *urlString =
     [NSString stringWithFormat:@"https://www.example.com/?email=%@", user.email];
 actionCodeSettings.URL = [NSURL URLWithString:urlString];
 actionCodeSettings.iOSBundleID = [NSBundle mainBundle].bundleIdentifier;
 // When multiple custom dynamic link domains are defined, specify which one to use.
 actionCodeSettings.dynamicLinkDomain = @"example.page.link";
 [actionCodeSettings setAndroidPackageName:@"com.example.android"
                     installIfNotAvailable:YES
                            minimumVersion:'12'];
 [user sendEmailVerificationWithActionCodeSettings:actionCodeSettings
                                        completion:^(NSError *_Nullable error) {
   if (error) {
     // Error occurred. Inspect error.code and handle error.
     return;
   }
   // Email verification sent.
 }];

Firebase Auth usa Firebase Dynamic Links cuando envía un enlace que debe abrirse en una aplicación móvil. Para usar esta función, Dynamic Links debe configurarse en Firebase Console.

  1. Habilite los vínculos dinámicos de Firebase:

    1. En Firebase console , abra la sección Dynamic Links .
    2. Si aún no ha aceptado los términos de Dynamic Links y ha creado un dominio de Dynamic Links, hágalo ahora.

      Si ya creó un dominio de Dynamic Links, tome nota. Un dominio de Dynamic Links normalmente se parece al siguiente ejemplo:

      example.page.link

      Necesitará este valor cuando configure su aplicación Apple o Android para interceptar el enlace entrante.

  2. Configuración de aplicaciones Android:

    1. Si planea manejar estos enlaces desde su aplicación de Android, el nombre del paquete de Android debe especificarse en la configuración del proyecto de Firebase Console. Además, se debe proporcionar el SHA-1 y SHA-256 del certificado de la aplicación.
    2. También deberá configurar el filtro de intención para el enlace profundo en su archivo AndroidManifest.xml.
    3. Para obtener más información al respecto, consulte las instrucciones para recibir Android Dynamic Links .
  3. Configuración de aplicaciones de Apple:

    1. Si planea manejar estos enlaces desde su aplicación, la ID del paquete debe especificarse en la configuración del proyecto de Firebase Console. Además, también es necesario especificar el ID de la tienda de aplicaciones y el ID del equipo de desarrolladores de Apple.
    2. También deberá configurar el dominio de enlace universal FDL como un dominio asociado en las capacidades de su aplicación.
    3. Si planea distribuir su aplicación a las versiones de iOS 8 y anteriores, deberá configurar su ID de paquete como un esquema personalizado para las URL entrantes.
    4. Para obtener más información al respecto, consulte las instrucciones de recepción de Dynamic Links en plataformas de Apple .

Manejo de acciones de correo electrónico en una aplicación web

Puede especificar si desea manejar el enlace del código de acción primero desde una aplicación web y luego redirigir a otra página web o aplicación móvil después de completar con éxito, siempre que la aplicación móvil esté disponible. Esto se hace configurando handleCodeInApp en false en el FIRActionCodeSettings (Obj-C) o ActionCodeSettings (Swift). Si bien no se requiere una ID de paquete o un nombre de paquete de Android, proporcionarlos permitirá al usuario redirigir de nuevo a la aplicación especificada al completar el código de acción del correo electrónico.

La URL web utilizada aquí es la configurada en la sección de plantillas de acción de correo electrónico. Se proporciona uno predeterminado para todos los proyectos. Consulte la personalización de los controladores de correo electrónico para obtener más información sobre cómo personalizar el controlador de acciones de correo electrónico.

En este caso, el enlace dentro del parámetro de consulta continueURL será un enlace FDL cuya carga útil es la URL especificada en el objeto ActionCodeSettings . Si bien puede interceptar y manejar el enlace entrante desde su aplicación sin ninguna dependencia adicional, recomendamos usar la biblioteca del cliente FDL para analizar el enlace profundo por usted.

Al manejar acciones de correo electrónico como la verificación de correo electrónico, el código de acción del parámetro de consulta oobCode debe analizarse desde el vínculo profundo y luego aplicarse a través de applyActionCode para que el cambio surta efecto, es decir, el correo electrónico debe verificarse.

Manejo de acciones de correo electrónico en una aplicación móvil

Puede especificar si desea manejar primero el enlace del código de acción dentro de su aplicación móvil, siempre que esté instalada. Con las aplicaciones de Android, también tiene la capacidad de especificar a través de androidInstallIfNotAvailable que la aplicación debe instalarse si el dispositivo la admite y aún no está instalada. Si se hace clic en el enlace desde un dispositivo que no es compatible con la aplicación móvil, en su lugar se abre desde una página web. Esto se hace configurando handleCodeInApp en true en el FIRActionCodeSettings (Obj-C) o ActionCodeSettings (Swift). También será necesario especificar el nombre del paquete de Android de la aplicación móvil o el ID del paquete. La URL web alternativa que se usa aquí, cuando no hay una aplicación móvil disponible, es la configurada en la sección de plantillas de acciones de correo electrónico. Se proporciona uno predeterminado para todos los proyectos. Consulte la personalización de los controladores de correo electrónico para obtener más información sobre cómo personalizar el controlador de acciones de correo electrónico.

En este caso, el enlace de la aplicación móvil enviado al usuario será un enlace FDL cuyo payload es la URL del código de acción, configurada en la Consola, con los parámetros de consulta oobCode , mode , apiKey y continueUrl . Esta última será la URL original especificada en el FIRActionCodeSettings (Obj-C) o ActionCodeSettings (Swift). Si bien puede interceptar y manejar el enlace entrante desde su aplicación sin ninguna dependencia adicional, recomendamos usar la biblioteca del cliente FDL para analizar el enlace profundo por usted. El código de acción se puede aplicar directamente desde una aplicación móvil de forma similar a cómo se maneja desde el flujo web descrito en la sección de personalización de los controladores de correo electrónico .

Al manejar acciones de correo electrónico como la verificación de correo electrónico, el código de acción del parámetro de consulta oobCode debe analizarse desde el vínculo profundo y luego aplicarse a través de applyActionCode para que el cambio surta efecto, es decir, el correo electrónico debe verificarse.