{"id":27404412,"url":"https://github.com/juanospina0409/authmaster_node_project","last_synced_at":"2026-05-04T01:35:12.150Z","repository":{"id":285654124,"uuid":"958885413","full_name":"juanospina0409/AuthMaster_Node_Project","owner":"juanospina0409","description":"AuthMaster es un sistema de autenticación basado en Bun, TypeScript, bcrypt, jsonwebtoken y valibot, diseñado para manejar registro, login y logout de usuarios de forma segura y eficiente.","archived":false,"fork":false,"pushed_at":"2025-04-13T17:47:26.000Z","size":11635,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T18:39:57.305Z","etag":null,"topics":["bcryptjs","bun","cors","http-server","jsonwebtokens","jwt-authentication","node-js","typescript","valibot"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juanospina0409.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-01T23:28:40.000Z","updated_at":"2025-04-13T17:47:32.000Z","dependencies_parsed_at":"2025-04-02T00:38:49.248Z","dependency_job_id":null,"html_url":"https://github.com/juanospina0409/AuthMaster_Node_Project","commit_stats":null,"previous_names":["juanospina0409/authmaster_node_project"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juanospina0409%2FAuthMaster_Node_Project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juanospina0409%2FAuthMaster_Node_Project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juanospina0409%2FAuthMaster_Node_Project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juanospina0409%2FAuthMaster_Node_Project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juanospina0409","download_url":"https://codeload.github.com/juanospina0409/AuthMaster_Node_Project/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248826280,"owners_count":21167654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bcryptjs","bun","cors","http-server","jsonwebtokens","jwt-authentication","node-js","typescript","valibot"],"created_at":"2025-04-14T05:28:49.361Z","updated_at":"2026-05-04T01:35:12.114Z","avatar_url":"https://github.com/juanospina0409.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AuthMaster_Node_Project\n\n🔐 AuthMaster - API de Autenticación con Bun y TypeScript\n\nAuthMaster es un sistema de autenticación basado en Bun, TypeScript, bcrypt, jsonwebtoken y valibot, diseñado para manejar registro, login y logout de usuarios de forma segura y eficiente. 🚀\n📌 Características\n\n    ✅ Registro, inicio de sesión y cierre de sesión de usuarios\n\n    ✅ Hashing de contraseñas con bcrypt 🔒\n\n    ✅ Autenticación basada en tokens JWT\n\n    ✅ Validación de datos con valibot\n\n    ✅ Uso de Bun para un rendimiento ultrarrápido\n\n🚀 Instalación y Configuración:\n\n1️⃣ Instalar Bun por si aún no tienes Bun instalado, usa el siguiente comando:\n\ncurl -fsSL https://bun.sh/install | bash\n\nVerifica la instalación con:\n\nbun -v\n\n2️⃣ Inicializar el proyecto y configurar ESLint\n\nnpx eslint --init\n\nConfiguración recomendada:\n\n    ✅ \"To check syntax and find problems\"\n\n    ✅ \"JavaScript modules (import/export)\"\n\n    ✅ \"None (se usará Node)\"\n\n    ✅ \"TypeScript\"\n\n    ✅ \"Node\"\n\n    ✅ \"Yes\" (usar Bun)\n\n📦 Instalar dependencias\n\nEjecuta el siguiente comando para instalar todas las dependencias necesarias:\n\nbun install bcrypt cors jsonwebtoken valibot\n\n📌 Explicación de las librerías:\n\n    bcrypt ➝ Para hashear y verificar contraseñas 🔒\n\n    cors ➝ Permite compartir recursos entre diferentes dominios 🌎\n\n    jsonwebtoken ➝ Manejo de tokens de autenticación JWT 🛡\n\n    valibot ➝ Validación de datos de entrada\n\n🛠 Instalar dependencias de desarrollo\n\nbun add -D @eslint/js @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-config-airbnb-base eslint-config-airbnb-base-typescript eslint-plugin-import eslint-plugin @types/bcrypt @types/cors @types/jsonwebtoken\n\n\n🏗 Configuración de Scripts en package.json\n\nPara facilitar la ejecución, agrega los siguientes scripts en package.json:\n\n\"scripts\": {\n  \"lint\": \"eslint .\",\n  \"dev\": \"bun run index.ts\"\n}\n\nPara iniciar la aplicación en modo desarrollo, usa:\n\nbun dev\n\n📌 Esto ejecutará index.ts y levantará el servidor en el puerto 4000.\n🔥 Uso de la API\n1️⃣ Registro de usuario (/auth/register)\n\nCURL:\n\ncurl -X POST http://localhost:4000/auth/register -H \"Content-Type: application/json\" -d '{\"email\": \"test@test.com\", \"password\": \"12341234\"}'\n\n📌 Respuesta esperada (201 Created):\n\n{\n  \"id\": 1743528394453,\n  \"email\": \"test@test.com\",\n  \"password\": \"$2b$10$...\",\n  \"role\": \"user\"\n}\n\n2️⃣ Inicio de sesión (/auth/login)\n\nCURL:\n\ncurl -X POST http://localhost:4000/auth/login -H \"Content-Type: application/json\" -d '{\"email\": \"test@test.com\", \"password\": \"12341234\"}'\n\n📌 Respuesta esperada (200 OK):\n\n{\n  \"accessToken\": \"\u003cTOKEN_JWT\u003e\",\n  \"refreshToken\": \"\u003cTOKEN_REFRESH\u003e\"\n}\n\nGuarda el accessToken, ya que lo necesitarás para cerrar sesión.\n3️⃣ Cerrar sesión (/auth/logout)\n\nPara cerrar sesión, debes incluir el accessToken en la cabecera Authorization.\nCURL:\n\ncurl -X POST http://localhost:4000/auth/logout -H \"Authorization: Bearer \u003cACCESS_TOKEN\u003e\"\n\n📌 Respuesta esperada (200 OK):\n\n{\n  \"Message\": \"Logged out\"\n}\n\nEsto revoca el token del usuario y lo desconecta del sistema.\n🔑 Seguridad y Manejo de Tokens\n\n    Las contraseñas se almacenan de forma segura usando bcrypt.\n\n    Cada usuario recibe un JWT (JSON Web Token) en el login, el cual debe enviarse en cada petición protegida.\n\n    Los tokens expiran después de 1 hora (accessToken) y 1 día (refreshToken).\n\n🚀 Tecnologías Utilizadas\nBun - Servidor backend ultrarrápido ⚡\nTypeScript - Tipado estático y desarrollo seguro 🔍\nbcrypt - Hashing seguro de contraseñas 🔐\njsonwebtoken (JWT) - Manejo de tokens de autenticación 🔑\nvalibot - Validación de datos del usuario ✅\nCORS - Permite peticiones entre dominios 🌎\nESLint - Estilo de código y buenas prácticas 🛠\n\n\nTo install dependencies:\n\n```bash\nbun install\n```\n\nTo run:\n\n```bash\nbun run index.ts\n```\n\nThis project was created using `bun init` in bun v1.2.5. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuanospina0409%2Fauthmaster_node_project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuanospina0409%2Fauthmaster_node_project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuanospina0409%2Fauthmaster_node_project/lists"}