Autenticación con node:http y better-auth
A veces solo necesito un servidor Node.js que funcione sin Express ni otros frameworks pesados. Aquí presento un patrón simple que utilizo para manejar autenticación con node:http y la librería better-auth. Lo escribo para no tener que recordar todos los detalles pequeños y para compartir una opción minimalista y controlable.
Por qué este enfoque No frameworks No quiero añadir Express o Koa solo para unos pocos endpoints. Minimalidad de dependencias better-auth se encarga de la lógica de autenticación y el resto permanece en Node estándar. Control Ver exactamente qué ocurre en la canalización request response sin capas adicionales.
El manejador base La idea es tener un tipo o función que actúe como manejador de peticiones del servidor http.Server y que reciba un IncomingMessage y un ServerResponse. Ese manejador devuelve void o una promesa de void en caso de operaciones asíncronas. Mantener esta abstracción permite componer diferentes responsabilidades sin depender de un framework.
Conversión de la petición Antes de pasar la petición a better-auth conviene transformar el IncomingMessage a un objeto Request estándar. Esto implica construir la URL completa usando una base, copiar cabeceras a un objeto Headers y decidir si la petición lleva body en función del método HTTP. Para métodos GET o HEAD no se adjunta body, en otros métodos se puede streamiar directamente el IncomingMessage.
El handler de autenticación El wrapper que conecta con better-auth recibe la Request convertida, ejecuta auth.handler y a partir de la respuesta ajusta el statusCode y las cabeceras del ServerResponse. Si la respuesta incluye body se streamia hacia el ServerResponse usando las utilidades de streams de Node para evitar cargar todo en memoria. Es importante omitir cabeceras de transferencia que puedan duplicar instrucciones, como transfer-encoding.
Conexión al servidor En un servidor http puro se crea la instancia con createServer y se registra un listener request que delega en el manejador de autenticación. Si el manejador ya terminó la respuesta se devuelve, en caso contrario se puede gestionar el resto de rutas o responder 404. Este patrón mantiene el servidor predecible y fácil de entender.
Ventajas prácticas Menos dependencias, menor superficie de ataque, y más facilidad para auditar el flujo de peticiones. Es ideal cuando se busca un servidor minimalista que solo exponga algunos endpoints relacionados con autenticación o integraciones concretas.
Sobre Q2BSTUDIO En Q2BSTUDIO somos una empresa de desarrollo de software que crea aplicaciones a medida y soluciones de software a medida para empresas de todos los tamaños. Somos especialistas en inteligencia artificial, ciberseguridad y servicios cloud aws y azure, y ofrecemos servicios de inteligencia de negocio y soluciones con power bi. Si buscas transformar procesos con automatización y agentes IA o necesitas una estrategia de ia para empresas podemos ayudarte a diseñar e implementar la solución adecuada.
Servicios recomendados Para proyectos que requieren aplicaciones personalizadas y desarrollo a medida visita nuestra página de desarrollo de aplicaciones y software a medida. Si tu foco es inteligencia artificial corporativa y agentes IA revisa cómo trabajamos la inteligencia artificial para empresas y cómo la integramos con tus procesos y datos.
Palabras clave aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws azure servicios inteligencia de negocio ia para empresas agentes IA power bi
Conclusión Este patrón simple con node:http y better-auth ofrece una solución práctica y ligera para autenticación sin perder control ni visibilidad del flujo. Si necesitas ayuda para implementar una arquitectura similar en tu entorno profesional, en Q2BSTUDIO podemos acompañarte desde el diseño hasta la puesta en producción, con experiencia en ciberseguridad, cloud y analítica de negocio.
Comentarios