const jwt = require('../tools/jwt'); /** * Middleware di autenticazione per utenti finali. * Verifica il JWT dal cookie 'auth_token' o dall'header 'Authorization: Bearer '. * * Se valido, inietta req.user con { user_id, username, session_id }. */ const userAuth = (req, res, next) => { const token = (req.cookies && req.cookies.auth_token) || jwt.getToken(req.headers['authorization']); if (!token || typeof token !== 'string') { return res.status(401).json({ error: 'Accesso negato: token mancante' }); } // Limite ragionevole sulla lunghezza del token per evitare abusi if (token.length > 2048) { return res.status(400).json({ error: 'Token non valido' }); } const verified = jwt.verifyToken(token); if (!verified.valid) { return res.status(401).json({ error: 'Sessione non valida o scaduta', reason: verified.reason }); } req.user = verified.payload; next(); }; module.exports = userAuth;