authjson
v1.0.1
Published
Un servidor RESTful con autenticación JWT, inspirado en json-server.
Maintainers
Readme
AuthJSON
AuthJSON es un servidor RESTful inspirado en json-server, pero con una capa de autenticación basada en JWT (JSON Web Tokens). Permite crear una API RESTful a partir de un archivo db.json, con operaciones CRUD y autenticación integrada.
Características
- Autenticación JWT: Registro e inicio de sesión con generación de tokens JWT.
- Operaciones CRUD: Crear, leer, actualizar y eliminar recursos de manera dinámica.
- Monitoreo de cambios: Detecta cambios en el archivo
db.jsonen tiempo real. - Fácil de usar: Configuración mínima y compatible con
json-server.
Instalación
Puedes instalar AuthJSON globalmente usando npm:
npm install -g authjsonO como dependencia en tu proyecto:
npm install authjsonUso
1. Crear un archivo db.json
Crea una carpeta data en la raíz de tu protecto y un archivo db.json con la estructura de datos que desees. Por ejemplo:
{
"users": [
{ "id": 1, "userId": "123", "name": "Daniel", "email": "[email protected]" }
],
"posts": [
{ "id": 1, "userId": "123", "title": "Mi primer post", "content": "Hola mundo" }
]
}2. Configuración
Variables de entorno
DB_PATH: Ruta al archivo db.json.
PORT: Puerto en el que se ejecutará el servidor (por defecto: 3001).
SECRET_JWT_SEED: Clave secreta para la generación de tokens JWT. Si no se configura, se usará una clave predeterminada ('default-secret-key').
Argumentos de línea de comandos
--db <ruta>: Especifica la ruta al archivo db.json.
3. Iniciar el servidor
Puedes iniciar el servidor especificando la ruta de db.json como argumento de línea de comandos:
authjson --db ./ruta/al/db.jsonO configurando la variable de entorno DB_PATH:
DB_PATH=./ruta/al/db.jsonEl servidor se iniciará en el puerto 3001 (o el que especifiques en la variable de entorno PORT).
4. Endpoints disponibles
Al iniciar el servidor, se mostrarán en la consola los endpoints disponibles. Por ejemplo:
🔗 **AuthJSON Endpoints:**
📌 Base URL: http://localhost:3001/
🔑 **Autenticación:**
✅ POST http://localhost:3001/api/auth/login
✅ POST http://localhost:3001/api/auth/register
🛠️ **Recursos Generados Automáticamente:**
✅ GET http://localhost:3001/api/users
✅ POST http://localhost:3001/api/users
✅ GET http://localhost:3001/api/users/:id
✅ PUT http://localhost:3001/api/users/:id
✅ DELETE http://localhost:3001/api/users/:id
✅ GET http://localhost:3001/api/posts
✅ POST http://localhost:3001/api/posts
✅ GET http://localhost:3001/api/posts/:id
✅ PUT http://localhost:3001/api/posts/:id
✅ DELETE http://localhost:3001/api/posts/:id5. Autenticación
Registro
Para registrar un nuevo usuario, realiza una solicitud POST a /api/auth/register:
curl -X POST http://localhost:3001/api/auth/register \
-H "Content-Type: application/json" \
-d '{
"userId": "123",
"name": "Daniel",
"email": "[email protected]"
}'Inicio de sesión
Para iniciar sesión, realiza una solicitud POST a /api/auth/login:
curl -X POST http://localhost:3001/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]"
}'6. Operaciones CRUD
Una vez autenticado, puedes realizar operaciones CRUD en los recursos. Por ejemplo, para obtener todos los posts:
curl -X GET http://localhost:3001/api/posts \
-H "Authorization: Bearer <tu-token-jwt>"¿Te gustó AuthJSON?
Si te gustó AuthJSON deja tu estrella en GitHub. Gracias!
