Necesitas proteger rutas administrativas para que solo usuarios con permisos de admin puedan acceder.
Para este caso, necesitas crear un middleware personalizado que verifique si el usuario es administrador isAdmin antes de permitir el acceso a rutas protegidas.
Flujo:
Petición → Middleware → ¿isAdmin = true? → SÍ → Ruta Admin
→ NO → Error 403 const express = require('express');
const app = express();
// Middleware de admin
function verificarAdmin(req, res, next) {
if (req.query.isAdmin === 'true') {
next(); // Continuar
} else {
res.status(403).json({ error: 'Acceso denegado' });
}
}
// Ruta pública
app.get('/', (req, res) => {
res.json({ mensaje: 'Página pública' });
});
// Ruta protegida
app.get('/admin', verificarAdmin, (req, res) => {
res.json({ mensaje: 'Panel admin' });
});
app.listen(3000); El middleware intercepta la petición, verifica el parámetro isAdmin y decide si continuar o bloquear el acceso.
Si encuentra isAdmin=true ejecuta next(), caso contrario devuelve error 403.
1. El Middleware:
function verificarAdmin(req, res, next) {
const isAdmin = req.query.isAdmin === 'true' ||
req.body?.isAdmin === true;
if (isAdmin) {
next(); // ✅ Continuar
} else {
res.status(403); // ❌ Bloquear
}
} 2. Proteger Rutas:
// Sin protección
app.get('/publico', handler);
// Con protección
app.get('/admin/panel', verificarAdmin, handler); next() la ruta nunca se ejecuta