Se desarrolló una API REST que permite la autenticación de usuarios mediante tokens JWT. Para su implementación se utilizaron las siguientes tecnologías:
-
Node.js: como entorno de ejecución para el backend.
-
TypeScript: para aprovechar un tipado estricto.
-
Express: como framework para la creación de rutas y manejo de peticiones.
-
Prisma: como ORM para facilitar la interacción con la base de datos.
-
PostgreSQL: como sistema de gestión de bases de datos relacional.
Además, se configuró un archivo docker-compose para facilitar la creación y configuración rápida de una base de datos PostgreSQL en un entorno de desarrollo.
Para instalar Docker, puedes seguir la documentación oficial disponible en Docker Documentation
Primero, deberás clonar el proyecto mediante el siguiente comando:
git clone https://github.com/ReinaldoBustamante/simple-auth-api.git
Luego, debes posicionarte en la carpeta del proyecto con:
cd simple-auth-api
Una vez dentro del directorio, instala las dependencias con:
npm i
Es necesario configurar las variables de entorno correspondientes a la base de datos. Estas variables son las que utiliza el archivo docker-compose.yml
para crear la base de datos al iniciarse, además de la URL para establecer la conexión mediante Prisma.
POSTGRES_DB = Nombre de la base de datos
POSTGRES_USER = Usuario para acceder a la base de datos
POSTGRES_PASSWORD = Contraseña para acceder a la base de datos
DATABASE_URL = "postgresql://user:password@localhost:5432/db_name?schema=public"
Para inicializar los servicios definidos en el archivo docker-compose.yml
, ejecuta el siguiente comando:
docker compose up -d
Para aplicar las migraciones y actualizar la estructura de la base de datos según el esquema de Prisma, ejecuta el siguiente comando:
npm run migrate
Para iniciar el proyecto en modo de desarrollo, ejecuta el siguiente comando:
npm run dev
Una vez que el servidor esté en funcionamiento, podrás interactuar con la API utilizando Postman. La URL de la API es: http://localhost:3000/api
- POST /auth/register
- POST /auth/login
- GET /auth/validate/{token}
- GET /users