const jwt = require('jsonwebtoken'); const JWT_SECRET = process.env.JWT_SECRET || 'smart-parking-secret-key-bts-ciel-2025'; function generateToken(user) { return jwt.sign( { id: user.id, email: user.email, role: user.role }, JWT_SECRET, { expiresIn: '24h' } ); } function authenticateToken(req, res, next) { const authHeader = req.headers['authorization']; const token = authHeader && authHeader.split(' ')[1]; if (!token) { return res.status(401).json({ success: false, message: 'Token manquant' }); } jwt.verify(token, JWT_SECRET, (err, user) => { if (err) { return res.status(403).json({ success: false, message: 'Token invalide' }); } req.user = user; next(); }); } function requireAdmin(req, res, next) { if (req.user.role !== 'admin') { return res.status(403).json({ success: false, message: 'Accès réservé aux administrateurs' }); } next(); } module.exports = { generateToken, authenticateToken, requireAdmin };