Implementar autenticación en Angular con Json Web Tokens (JWT) arranca con una base sólida: dos páginas de login y registro, rutas claras y un servicio centralizado de autorización. A continuación se muestra cómo estructurar componentes, maquetar con Bootstrap y preparar un servicio reutilizable, dejando lista la integración posterior con Firebase.
¿Qué construimos para la autenticación con Angular y JWT?
Empezamos creando dos componentes: login y registro. Se duplicó el componente de contacto y se renombraron archivos y selectores para cada caso. Luego, se configuraron rutas en AppModule y se añadió una barra de navegación con enlaces a ambos formularios usando routerLink. Finalmente, se creó un autorizacionService con métodos login y registro, inyectado en los componentes para probar su ejecución con console.log.
Habilidades practicadas: creación de componentes en Angular. Configuración de rutas. Maquetación con Bootstrap. Inyección de dependencias. Uso de services y funciones flecha. Pruebas con console.log.
Conceptos clave: Json Web Tokens (JWT). routerLink. @Injectable. navbar-right. Clases de Bootstrap como container, row, col-md-4, col-md-offset-4, well, btn, btn-primary, btn-default, btn-block.
¿Cómo crear las páginas de login y registro con Bootstrap?
Primero se generó el componente de login, ajustando selector, template y ruta. Luego se maquetó un formulario centrado con la grilla de Bootstrap, y se repitió el proceso para registro.
¿Cómo configurar el componente de login?
Duplicar el componente existente y renombrarlo a LoginComponent.
Actualizar selector a app-login y el templateUrl a login.component.html.
¿Cómo declarar rutas y un servicio de autorización reutilizable?
Se añadieron rutas en AppModule para login y registro. Luego, se incorporó una navbar con enlaces a la derecha y se creó un serviceautorizacion.service.ts con métodos mínimos para probar el flujo.
¿Cómo definir rutas en AppModule?
Agregar rutas login y registro con sus componentes.
Incluir componentes en declarations y el servicio en providers.