Comienza con FACEIO

Implementa autenticación facial sin contraseña en menos de 5 minutos. Crea una aplicación FACEIO, revisa sus opciones de seguridad y privacidad, integra fio.js, y después utiliza enroll() para usuarios nuevos y authenticate() para usuarios existentes.

Crea una aplicación en FACEIO Console, copia su Public ID y utilízalo para inicializar fio.js en tu sitio o aplicación web.

FACEIO en menos de 5 minutos

Una guía práctica de configuración para sitios y aplicaciones web

Esta guía cubre la secuencia de integración de FACEIO: crea una aplicación en FACEIO Console ↗, selecciona un motor de reconocimiento facial, revisa la configuración de seguridad y privacidad, carga la biblioteca fio.js, registra usuarios nuevos, autentica usuarios existentes y administra la aplicación desde Console.

Consejo rápido

Consulta la plantilla HTML de integración para ver un ejemplo funcional de registro y autenticación.

Widget de FACEIO mostrando el flujo de registro y autenticación

Ejemplo de integración: Consulta implementaciones de FACEIO en tutoriales de la comunidad para distintos frameworks.

Pasos de integración de FACEIO

Sigue la secuencia desde la creación de la aplicación hasta la configuración de producción:

1

Cómo funciona FACEIO

Comprende cómo FACEIO añade registro facial y autenticación a un sitio o aplicación web.

2

Lista de integración

Revisa los pasos necesarios para integrar fio.js en tu sitio o aplicación web.

3

Crea tu aplicación

Configura tu primera aplicación FACEIO, elige un motor de reconocimiento facial, revisa las opciones de seguridad y personaliza el widget.

4

Añade la biblioteca fio.js

Integra la biblioteca fio.js en tu sitio web e inicialízala con el Public ID de tu aplicación.

5

enroll() y authenticate()

Consulta los métodos de fio.js utilizados para registrar usuarios nuevos y autenticar usuarios existentes.

6

Registra tu primer usuario

Implementa el registro y la autenticación con ejemplos funcionales y adapta el resultado a la lógica de cuentas y sesiones de tu backend.

7

Plantilla de integración

Utiliza una plantilla HTML con ejemplos de registro y autenticación.

8

Administra tu aplicación

Consulta la actividad, configura la seguridad, añade webhooks, recupera las claves API y administra el índice facial.

Introducción a FACEIO

Cómo FACEIO añade autenticación facial a los flujos de acceso web

Resumen

FACEIO es un framework de autenticación facial compatible con distintos navegadores para sitios y aplicaciones web. Su biblioteca fio.js abre el widget de registro y autenticación desde tu frontend y devuelve un Facial ID y el payload de la aplicación para el flujo de cuenta.

¿Qué es FACEIO?

  • FACEIO es un framework de autenticación facial compatible con distintos navegadores, disponible como servicio administrado o despliegue on-premises. Su biblioteca JavaScript para el cliente, fio.js, añade flujos de registro y autenticación a sitios y aplicaciones web.

  • Añade fio.js a tu frontend e inicialízala con el Public ID de la aplicación. Los usuarios nuevos se registran mediante enroll(), mientras que los usuarios existentes acceden mediante authenticate() desde un navegador y una cámara compatibles.

  • Tu backend debe asociar el Facial ID devuelto con la cuenta correspondiente, aplicar sus propias reglas de autorización y sesión, y ofrecer un método de recuperación a quienes no puedan completar la autenticación facial.

  • FACEIO funciona con webcams estándar y cámaras frontales de teléfonos en navegadores modernos compatibles, sin exigir un sensor biométrico dedicado. La biblioteca JavaScript fio.js es independiente del framework y se integra con stacks frontend y backend habituales.

Funciones principales de FACEIO

Compara una captura nueva con el índice facial registrado y devuelve un resultado de autenticación sin solicitar contraseña ni OTP en el flujo principal de FACEIO.

Selecciona un motor de reconocimiento facial compatible y una región de despliegue al configurar la aplicación.

La biblioteca fio.js es independiente del framework y se integra con JavaScript, React, Vue, Angular, Next.js y otros stacks frontend.

Funciona en navegadores modernos compatibles con una webcam estándar o una cámara frontal. Crear una aplicación ↗

Es compatible con versiones actuales de los principales navegadores, según el acceso a la cámara y las funciones disponibles.

Incluye comprobaciones de vivacidad y validación mediante PIN Code, activada por defecto, en el flujo de autenticación facial.

Ofrece controles de seguridad configurables y prácticas de privacidad documentadas sin exigir un sensor biométrico dedicado.

Admite motores de reconocimiento facial en la nube y PixLab Insight on-premises. El motor seleccionado administra los hashes biométricos según la configuración del propietario de la aplicación.

Privacidad y protección de datos

  • Los propietarios de aplicaciones deben proporcionar los avisos y el consentimiento requeridos, mantener un método de acceso alternativo y atender las solicitudes de eliminación. Consulta la guía de prácticas de privacidad antes del despliegue en producción.

  • FACEIO no almacena, gestiona ni accede a hashes biométricos. El motor de reconocimiento facial seleccionado por el propietario de la aplicación los administra según su configuración de despliegue y almacenamiento. Consulta el Trust Center para obtener información sobre privacidad y seguridad del servicio.

Consejo rápido

Consulta la plantilla HTML de integración o consulta las preguntas frecuentes para obtener más información.

Lista de integración

Pasos esenciales para integrar fio.js

Empieza por crear una aplicación FACEIO en FACEIO Console ↗ y vincularla con tu sitio o aplicación web. Después carga e inicializa fio.js, registra un usuario de prueba y comprueba el flujo de autenticación para usuarios existentes.

Antes de comenzar

Las guías oficiales con ejemplos de código están disponibles en el Centro para desarrolladores.

Sigue estos pasos para habilitar la autenticación facial:

1

Accede a FACEIO Console

Inicia sesión en FACEIO Console ↗ con tu correo electrónico. Después utiliza el Asistente de aplicaciones para crear tu primera aplicación FACEIO y vincularla con tu sitio o aplicación web.

2

Configura tu aplicación

El Asistente de aplicaciones guía el proceso de configuración. Introduce un nombre para la aplicación, selecciona un motor de reconocimiento facial, elige una región en la nube, revisa las opciones de seguridad y personaliza el widget.

3

Integra la biblioteca fio.js

Después de crear la aplicación FACEIO, integra fio.js, la biblioteca JavaScript de autenticación facial, en tu sitio web e inicialízala con el Public ID de la aplicación.

4

Prueba el registro y la autenticación

Después de cargar e inicializar fio.js, llama a enroll() y authenticate() para un usuario nuevo y uno existente, como se explica en las siguientes secciones.

Crea tu aplicación

Configura tu aplicación FACEIO desde Console

  • Antes de integrar fio.js y habilitar la autenticación facial para tus usuarios, debes vincular tu sitio o aplicación web con una aplicación FACEIO desde FACEIO Console ↗.

  • Cada usuario registrado recibe un Facial ID, y tu aplicación puede asociar sus propios metadatos mediante el parámetro payload. El motor de reconocimiento facial seleccionado administra el hash biométrico en un índice aislado de la aplicación. FACEIO no almacena, gestiona ni accede a hashes biométricos. Revisa el motor, la región de despliegue y la configuración de privacidad en el Administrador de aplicaciones de Console ↗.

  • Puedes crear una aplicación nueva en FACEIO Console ↗ en pocos minutos mediante el Asistente de aplicaciones. El asistente guía la asignación del nombre, la selección del motor de reconocimiento facial, la configuración de seguridad y la personalización del Widget.

Crea y configura la aplicación:

1

Accede a FACEIO Console ↗.

2

En la vista principal de Console, selecciona Nueva aplicación. Se abrirá el Asistente de aplicaciones.

3

En el Asistente de aplicaciones, sigue las instrucciones en pantalla. Introduce el nombre de la aplicación y la URL de la política de privacidad, y selecciona un motor de reconocimiento facial, una región en la nube o un despliegue on-premises, las opciones de seguridad y la personalización del widget.

Asistente de aplicaciones FACEIO con las opciones de configuración

Abrir el Asistente de aplicaciones

4

Revisa la configuración y envíala. Cuando se cree la aplicación, accederás al Administrador de aplicaciones ↗, donde podrás administrarla y consultar la guía de integración.

Aplicación creada

Copia el Public ID de la aplicación desde Console. Lo utilizarás para inicializar fio.js antes de llamar a enroll() o authenticate().

Añade la biblioteca fio.js

Integra la biblioteca de autenticación facial en tu sitio web

Documentación completa

La documentación oficial está disponible en la Guía de integración.

Después de crear tu primera aplicación desde FACEIO Console ↗, debes integrar fio.js, la biblioteca JavaScript de autenticación facial de FACEIO, en tu sitio o aplicación web. Este paso es necesario antes de habilitar la autenticación facial para tus usuarios. La configuración básica requiere tres líneas de código, como se muestra a continuación.

1 Carga fio.js en tu sitio

Pega el siguiente fragmento antes de la etiqueta de cierre </body> de las páginas HTML donde utilizarás fio.js:

fio.js se carga desde el recurso de FACEIO en CDN ↗.

HTML
<div id="faceio-modal"></div>
<script src="https://cdn.faceio.net/fio.js"></script>

El fragmento anterior carga fio.js de forma asíncrona. Una página HTML básica puede inicializar la biblioteca así:

Página HTML básica con fio.js cargado

HTML
<html>
  <head>
    <title>Acceso mediante reconocimiento facial</title>
  </head>
  <body>
    <div id="faceio-modal"></div>
    <script src="https://cdn.faceio.net/fio.js"></script>
  </body>
</html>
  • Consulta la plantilla HTML de integración para obtener una plantilla completa que puedes copiar, adaptar y probar en tu servidor.

  • Carga siempre fio.js directamente desde cdn.faceio.net ↗. No alojes una copia local, ya que no recibiría las correcciones y actualizaciones publicadas.

2 Crea un objeto faceIO

Para inicializar fio.js, crea un objeto faceIO() y pasa el Public ID de la aplicación, como se muestra a continuación. Puedes colocarlo después del código de carga del paso 1. Consulta la plantilla HTML completa.

Fragmento JavaScript para crear un nuevo objeto faceIO()

HTML
<script type="text/javascript">
   /* Inicializa fio.js con el Public ID de tu aplicación */
    const faceio = new faceIO("app-public-id");
</script>

Antes de continuar, encontrarás el Public ID en el Administrador de aplicaciones de FACEIO Console ↗. Comprueba que has:

3 Abre el widget

fio.js ya está cargado e inicializado. Llama a enroll() para registrar un usuario nuevo o a authenticate() para autenticar un usuario existente.

  • enroll() se utiliza para registrar usuarios nuevos (registro)

  • authenticate() se utiliza para autenticar usuarios existentes (inicio de sesión)

Esta página HTML básica integra fio.js:

Página HTML con fio.js preparado para llamar a enroll() o authenticate()

HTML
<html>
  <head>
    <title>Acceder o registrarse mediante reconocimiento facial</title>
  </head>
  <body>
    <button onclick="enrollNewUser()">Registrar usuario nuevo</button>
    <button onclick="authenticateUser()">Autenticar usuario</button>
    <div id="faceio-modal"></div>
    <script src="https://cdn.faceio.net/fio.js"></script>
    <script type="text/javascript">
        // Inicializa fio.js con el Public ID de tu aplicación
        const faceio = new faceIO("app-public-id");
        function enrollNewUser(){
           // La llamada a faceio.enroll() inicia el proceso de registro
        }
        function authenticateUser(){
           // La llamada a faceio.authenticate() inicia el proceso de autenticación facial
        }
        function handleError(errCode){
            // Gestiona el error aquí
        }
    </script>
  </body>
</html>

Plantilla de referencia

El HTML Boilerplate incluye una implementación de referencia con los métodos enroll() y authenticate().

Revisa ahora los métodos que fio.js ofrece antes de registrar el primer usuario.

Métodos de registro y autenticación

Usa enroll() para usuarios nuevos y authenticate() para usuarios existentes

fio.js proporciona dos métodos principales para el flujo de autenticación facial:

Método enroll()

  • Llama a enroll() en el objeto faceIO inicializado para registrar un usuario nuevo. El método abre el Widget de FACEIO e inicia el registro facial desde la página de registro o incorporación de tu sitio.

  • Al llamar a enroll(), el widget de FACEIO se abre, solicita el consentimiento y el acceso a la cámara cuando corresponde, y captura los datos necesarios. El motor de reconocimiento facial seleccionado genera e indexa el hash biométrico utilizado para futuras autenticaciones.

  • enroll() acepta varios parámetros opcionales, como locale para el idioma del widget, permissionTimeout para el tiempo de espera del permiso de cámara y payload, que contiene datos propios que puedes asociar al usuario como un correo electrónico, nombre o identificador. El payload se devuelve después de una futura autenticación.

  • enroll() devuelve una Promise que se resuelve con un objeto userInfo cuando el registro se completa. Incluye el Facial ID, la fecha de registro y las estimaciones details.age y details.gender. Usa el Facial ID como clave de consulta para la cuenta correspondiente durante una futura autenticación.

  • Si el usuario rechaza el acceso a la cámara o los Términos de servicio, la Promise se rechaza con el código de error correspondiente, como fioErrCode.PERMISSION_REFUSED o fioErrCode.TERMS_NOT_ACCEPTED. Consulta la sección Códigos de error para ver la lista.

  • El método enroll(), sus parámetros, valores devueltos y errores están documentados en la Guía de integración.

Método authenticate()

  • Llama a authenticate() en el objeto faceIO inicializado para reconocer a un usuario registrado. Utilízalo desde el flujo de inicio de sesión de tu sitio o aplicación web.

  • Al llamar a authenticate(), el widget de FACEIO se abre, solicita acceso a la cámara cuando corresponde, ejecuta las comprobaciones configuradas de vivacidad y reconocimiento facial, y devuelve el resultado.

  • Según la configuración de seguridad, después de que el motor reconozca al usuario, deberá confirmar el PIN Code elegido durante el registro) para que el método authenticate() se complete.

  • authenticate() acepta varios parámetros opcionales, incluidos permissionTimeout para el tiempo de espera del permiso de cámara, locale para el idioma y otras opciones documentadas aquí.

  • authenticate() devuelve una Promise que se resuelve con un objeto userData cuando la autenticación se completa. Sus propiedades principales son: payload (los datos vinculados durante el registro) y facialId (el identificador único del usuario). Puedes utilizarlos como claves de consulta en tu backend.

  • El método authenticate(), sus parámetros, valores devueltos y errores están documentados en la Guía de integración.

Siguiente paso

A continuación, utiliza ambos métodos en ejemplos funcionales de registro y autenticación.

Registra y autentica tu primer usuario

Ejemplos funcionales de registro y autenticación

Para iniciar el reconocimiento facial, llama a enroll() o authenticate(), los dos métodos principales de la clase faceIO() que has creado. enroll() se utiliza para registrar usuarios nuevos, mientras que authenticate() autentica a los usuarios existentes.

Registrar un usuario nuevo

El registro de un usuario nuevo (la captura y el indexado de sus características faciales tras obtener el consentimiento) se inicia mediante una llamada a enroll():

Invocación básica del método enroll()

HTML
// Crea un objeto faceIO con el Public ID de tu aplicación
const faceio = new faceIO("app-public-id");
function enrollNewUser(){
  faceio.enroll({
    "locale": "auto", // Idioma predeterminado del usuario
    "payload": {
        /* El payload que se asociará con este usuario y se devolverá tras una futura autenticación. */
        "whoami": 123456, // ID de ejemplo asociado con este usuario
        "email": "john.doe@example.com"
        }
    }).then(userInfo => {
        // Usuario registrado correctamente 
        alert(
            `Usuario registrado correctamente. Detalles:
           Facial ID único: ${userInfo.facialId}
           Fecha de registro: ${userInfo.timestamp}
           Género estimado: ${userInfo.details.gender}
           Edad aproximada: ${userInfo.details.age}`
        );
       console.log(userInfo);
       // Gestiona el resultado, guarda el Facial ID y redirige al panel
    }).catch(errCode => {
       // Registra el error producido durante el registro
       handleError(errCode);
    })
}
  • Inicialización: Crea el objeto faceIO con el Public ID de tu aplicación. Sustituye "app-public-id" por el Public ID disponible en FACEIO Console ↗.

  • Llamada de registro: enroll() inicia el registro, solicita el consentimiento y el acceso a la cámara cuando corresponde, y comienza la extracción de características faciales. El parámetro payload permite asociar datos propios, como un ID de usuario (whoami) y un correo electrónico. Este payload se devolverá después de una futura autenticación.

  • Resultado del registro: Cuando el registro se completa, la Promise se resuelve con un objeto userInfo que contiene el Facial ID, la fecha de registro y las estimaciones details.gender y details.age. Guarda el Facial ID en tu base de datos para vincular futuras autenticaciones con el usuario.

  • Tratamiento de errores: Captura los fallos de registro e implementa una función handleError() para tratar cada código. Consulta la documentación de códigos de error para ver los códigos disponibles.

Autenticar un usuario existente

De forma similar, la autenticación de un usuario registrado anteriormente se inicia mediante una llamada a authenticate():

Invocación básica del método authenticate()

HTML
const faceio = new faceIO("app-public-id"); // Inicializa con el Public ID de tu aplicación
function authenticateUser(){
    faceio.authenticate({
        "locale": "auto" // Idioma predeterminado del usuario
    }).then(userData => {
        console.log("Correcto, usuario identificado")
        // Lee el Facial ID devuelto para este usuario. Se mantiene igual
        // después de cada autenticación correcta en esta aplicación.
        // Guárdalo como clave de consulta de la cuenta correspondiente en el backend.
        console.log("Facial ID asociado: " + userData.facialId)
        // Lee los datos que asociaste con este usuario, si existen
        // durante el registro mediante el parámetro payload de enroll().
        console.log("Payload: " + JSON.stringify(userData.payload)) // Datos del payload del ejemplo de enroll() anterior
    }).catch(errCode => {
        handleError(errCode)
    })
}
  • Inicialización: Inicializa el objeto faceIO con el Public ID, como en el ejemplo de registro.

  • Llamada de autenticación: authenticate() inicia la autenticación, solicita acceso a la cámara cuando corresponde y ejecuta el reconocimiento facial. El parámetro locale define el idioma del widget.

  • Resultado de la autenticación: Cuando la autenticación se completa, la Promise se resuelve con un objeto userData. userData.facialId es el identificador estable del usuario en sus autenticaciones. Utilízalo como clave principal para consultar al usuario en tu backend. El userData.payload contiene los datos asociados durante el registro, por ejemplo {"whoami": 123456, "email": "john.doe@example.com"}.

  • Tratamiento de errores: Captura los fallos de autenticación e implementa una función handleError() para tratar cada código devuelto. Consulta la documentación de códigos de error para ver los códigos disponibles.

Siguiente paso

El plantilla HTML de integración incluye una implementación de referencia que combina enroll() y authenticate() en una plantilla inicial.

Plantilla completa de integración

Plantilla HTML inicial con el flujo de integración

La plantilla HTML combina inicialización, registro, autenticación y tratamiento de errores. Adapta la vinculación de cuentas, la gestión de sesiones, la recuperación y los mensajes antes de utilizarla en producción. El código también está disponible como Gist de GitHub ↗.

Importante: sustituye los valores de ejemplo

Sustituye el valor app-public-id por el Public ID real de tu aplicación al inicializar fio.js. Encontrarás el Public ID en el Administrador de aplicaciones de FACEIO Console ↗.

Plantilla

Notas de implementación

  • Llamadas a métodos: El ejemplo llama a enroll() para registrar usuarios nuevos y a authenticate() para autenticar usuarios existentes. Revisa sus opciones, valores devueltos y errores en la Guía de integración antes de adaptar el ejemplo.
  • Personaliza el payload: Modifica el payload del método enroll() para asociar tus datos con los usuarios registrados. El payload se devuelve durante futuras autenticaciones. Consulta la enroll() documentación para obtener más información.
  • Servidor HTTP necesario: fio.js debe cargarse desde un servidor HTTP debido a los requisitos de seguridad del navegador. No funciona directamente desde el sistema de archivos. Publica la plantilla en tu servidor y ábrela desde el navegador. Consulta la guía de prácticas recomendadas de seguridad para obtener más información.
  • Guarda el Facial ID: Después del registro, guarda el facialId devuelto en tu base de datos y vincúlalo con la cuenta. Sirve como clave de consulta para futuras autenticaciones.
  • Tratamiento de errores: El controlador recibe los códigos de error devueltos. Adapta cada mensaje a la interfaz y al flujo de recuperación de tu sitio o aplicación web.

Ejemplo de integración completo

Ya tienes una implementación de referencia para cargar fio.js, llama a enroll() y llamar a authenticate(). A continuación, revisa la administración de la aplicación y la configuración para producción.

Administra tu aplicación

Revisa la configuración, los eventos, los usuarios y el acceso a la API

Utiliza el Administrador de aplicaciones en FACEIO Console ↗ para revisar y configurar cada aplicación después de integrar fio.js:

Actividad de la aplicación

Consulta la actividad de registro y autenticación de la aplicación.

Configuración de seguridad

Configura los ajustes de seguridad, incluidos los requisitos de PIN Code, el filtrado de dominios y las restricciones por país.

Administración de usuarios

Elimina Facial IDs registrados cuando debas atender el derecho de supresión de un usuario.

Integración de webhooks

Configura webhooks para recibir eventos y sincronizarlos con tu backend.

Administración del índice facial

Administra el índice facial, amplía el almacenamiento, migra a on-premiseo transfiérelo a un bucket S3.

Personalización del widget

Adapta el tema, los colores y el diseño del widget a tu sitio web.

Administración de claves API

Obtén tus claves API y consulta las llamadas y cuotas de la API.

Soporte y mantenimiento

Utiliza los canales de soporte para abrir tickets, cambiar de plan o administrar el ciclo de vida de la aplicación.

Continúa la integración de FACEIO

Crea una aplicación, prueba el registro y la autenticación, vincula el Facial ID con las cuentas de tu backend y revisa las guías de seguridad y privacidad antes del despliegue.

Crea tu aplicación FACEIO

Abre FACEIO Console, crea una aplicación, copia su Public ID y utiliza esta guía de 5 minutos para conectar fio.js a tu sitio o aplicación web.