Este pull request introduce una serie de mejoras y pruebas relacionadas con la autenticación basada en JWT en la aplicación Express. Los cambios incluyen la implementación de middleware de autenticación, y la incorporación de pruebas unitarias para garantizar el funcionamiento correcto de estas funcionalidades.
Cambios Realizados
Implementación de Middleware de Autenticación:
Se añade el middleware authenticateToken para proteger las rutas y validar los tokens JWT.
Se añade el util tokenUtil que contiene la función firmarToken.
Configuración de Pruebas Unitarias:
Se configura una aplicación Express de prueba y se implementan rutas de prueba.
Se agregan pruebas unitarias utilizando supertest para verificar el comportamiento de:
Acceso con un token válido.
Rechazo de acceso sin un token.
Rechazo de acceso con un token inválido.
Generación correcta de tokens.
Se utiliza http-status-codes para manejar los códigos de estado HTTP de manera más clara y precisa en las pruebas.
Detalles Técnicos
Dependencias: Se asegura que las pruebas se realicen usando express, supertest, jsonwebtoken, y http-status-codes.
Clave Secreta: Se define una clave secreta para pruebas, asegurando que sea dinámica y manejada adecuadamente en el entorno de desarrollo.
Cómo Probar
Ejecutar Pruebas:
Usa npm test para ejecutar todas las pruebas unitarias y verificar que todos los casos de prueba pasen.
Para ejecutar un test específico, puedes usar --testNamePattern con el nombre del test.
Verificar Rutas en Test:
La ruta /protected requiere un token JWT válido para acceder.
La ruta /token permite generar un token JWT que puede ser utilizado para probar la autenticación.
Notas Adicionales
La clave no es lo ideal, hay que asegurarse de que sea dinámica para asegurar que ni siquiera los desarrolladores sepan cuál es la clave.
Descripción
Este pull request introduce una serie de mejoras y pruebas relacionadas con la autenticación basada en JWT en la aplicación Express. Los cambios incluyen la implementación de middleware de autenticación, y la incorporación de pruebas unitarias para garantizar el funcionamiento correcto de estas funcionalidades.
Cambios Realizados
Implementación de Middleware de Autenticación:
authenticateToken
para proteger las rutas y validar los tokens JWT.tokenUtil
que contiene la funciónfirmarToken
.Configuración de Pruebas Unitarias:
supertest
para verificar el comportamiento de:http-status-codes
para manejar los códigos de estado HTTP de manera más clara y precisa en las pruebas.Detalles Técnicos
express
,supertest
,jsonwebtoken
, yhttp-status-codes
.Cómo Probar
Ejecutar Pruebas:
npm test
para ejecutar todas las pruebas unitarias y verificar que todos los casos de prueba pasen.--testNamePattern
con el nombre del test.Verificar Rutas en Test:
/protected
requiere un token JWT válido para acceder./token
permite generar un token JWT que puede ser utilizado para probar la autenticación.Notas Adicionales