first commit

This commit is contained in:
2026-03-11 17:18:34 +01:00
commit c6954c1f50
20 changed files with 5049 additions and 0 deletions

53
server/middleware/auth.js Normal file
View File

@@ -0,0 +1,53 @@
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
};