Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

192
Vistas
¿Cómo puedo proporcionar un segundo factor de autenticación personalizado con Firebase?

Quiero brindarles a los usuarios de mi aplicación la capacidad de agregar un segundo factor de autenticación y actualmente estoy usando Firebase para iniciar sesión e iniciar la sesión de nuevos usuarios. Firebase ya te permite usar un segundo factor, pero tu única posibilidad es enviar un SMS a un número de teléfono verificado. Quiero reemplazar este segundo factor con Authy OneTouch , así que me preguntaba cuál es la mejor práctica en este caso.

En este momento , así es como autentico a mis usuarios:

  1. Un usuario inicia sesión usando un formulario en mi cliente. Debajo del capó, estoy usando signInWithEmailAndPassword , recuperando el IDToken de Firebase y configurando la persistencia en NONE .
  2. El cliente envía una solicitud de publicación a mi backend adjuntando el IdToken y singOut inmediatamente después.
  3. Si el token es válido, el servidor proporcionará una cookie de sesión HttpOnly que almacenará ese token que se enviará junto con futuras solicitudes a mi backend para realizar un seguimiento del estado de autenticación del usuario.

Cómo planeo cambiar mi flujo de trabajo :

  1. A través de la página de perfil, el usuario puede optar o no por el segundo factor de autenticación.

  2. Cuando el usuario opte por participar, enviaré una solicitud a mi servidor y llamará a setCustomUserClaims para adjuntar un reclamo mfa personalizado y realizar los pasos necesarios para registrar un nuevo usuario en Authy.

  3. Al iniciar sesión, accedo al reclamo llamando a getIdTokenResult y accedo a tokenResult.claims.mfa . Si no existe entonces el proceso sigue como la lista anterior. De lo contrario, cierro la sesión del usuario, le pido que revise el segundo factor y sondeo regularmente una URL específica que proporciona Authy para obtener actualizaciones sobre el estado del desafío del segundo factor.

  4. Cuando detecto que el desafío del segundo factor se completó con éxito, envío una solicitud de publicación a mi backend adjuntando el idToken que obtuve de Firebase y la información relevante que obtuve de la respuesta de Authy.

  5. El backend verifica si el idToken es válido (para asegurarse de que el desafío de la contraseña del correo electrónico se haya realizado previamente), luego procede a generar un token personalizado con el uuid, email, password, mfa-status mfa del usuario de Firebase usando createCustomToken , luego realiza un signInWithCustomToken y establece una cookie de sesión en la respuesta.

¿Es mi idea fundamentalmente correcta? En caso de que Firebase brinde una forma de personalizar su segundo factor predeterminado y me lo perdí. Gracias.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si bien Google Cloud Identity Platform, el hermano pago de Firebase Authentications, ofrece 2FA con SMS , actualmente ninguno de ellos ofrece una opción para usar/requerir un segundo factor personalizado para autenticar a un usuario.

Sin embargo, es una solicitud común, por lo que recomiendo presentar una solicitud de función para ello.

Hasta que la función se agregue a Firebase, la única forma en que puede hacer algo así es a través de un proveedor personalizado , que le permite (pero también requiere que usted) tome el control del flujo de autenticación usted mismo.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda