Autenticación: integrar un contexto de usuario compartido
Esta documentación describe el proceso para compartir estados de autenticación, como el contexto del usuario actual, entre micro-frontends dentro de un application shell usando Auth0 y Angular.
Descripción general
En las arquitecturas de micro-frontends es habitual necesitar compartir información de contexto, como los datos del usuario actual, entre distintas partes de la aplicación. Este documento describe cómo compartir el estado de autenticación sin fricciones usando @auth0/auth0-angular, un paquete que facilita la integración con Auth0, un proveedor de gestión de identidades.
Requisitos previos
Antes de continuar, asegúrate de tener:
- Conocimientos básicos de Angular y de los conceptos de micro-frontends.
- Una cuenta de Auth0 y una aplicación web registrada en el panel de administración de Auth0.
- Aplicaciones Angular configuradas con Module Federation.
Guía paso a paso
Paso 1: instalar el paquete de Auth0
Instala @auth0/auth0-angular con npm para usar Auth0 como sistema de autenticación en tus aplicaciones Angular:
Paso 2: configurar Auth0
- Ve al panel de administración de Auth0 y registra tu Single Page Application (SPA).
- Anota el
domainy elclientIdque se te proporcionan tras el registro. - Añade la URL de tu aplicación (p. ej.,
http://localhost:4200) a la sección Allowed Callback URLs.
Paso 3: importar el AuthModule
Importa el AuthModule de @auth0/auth0-angular en el AppModule tanto de la aplicación shell como de los micro-frontends.
Reemplaza YOUR_AUTH0_DOMAIN y YOUR_AUTH0_CLIENT_ID por los valores reales de la configuración de tu aplicación de Auth0.
Paso 4: implementar la funcionalidad de inicio de sesión
En tu aplicación shell, usa AuthService para implementar el inicio de sesión.
Paso 5: mostrar la información del usuario
En el componente home del shell, muestra el nombre del usuario que ha iniciado sesión.
Paso 6: usar AuthService en los micro-frontends
En los componentes de tus micro-frontends, también puedes usar AuthService para acceder a la información del usuario actual.
Paso 7: configurar Module Federation para compartir la autenticación
Asegúrate de que el paquete @auth0/auth0-angular se comparta entre el shell y los micro-frontends para mantener un único estado de autenticación.
Esta configuración garantiza que se use una única instancia de AuthService en toda la aplicación, lo que facilita un estado de autenticación compartido.
Conclusión
Siguiendo estos pasos, puedes compartir sin fricciones el estado de autenticación entre los micro-frontends de tus aplicaciones Angular. Esta configuración no solo simplifica la gestión de los contextos de usuario, sino que también mejora la experiencia general del usuario al mantener estados de autenticación coherentes entre los componentes modulares de tu aplicación.