zkt26/z1/webapp/routes/connexion.js
2026-03-31 19:33:15 +02:00

53 lines
1.4 KiB
JavaScript

const express = require('express');
const router = express.Router();
const bcrypt = require('bcrypt');
const db = require('../config/db');
// Connexion - Formulaire
router.get('/', (req, res) => {
res.render('connexion');
});
// Connexion - Traitement
router.post('/', (req, res) => {
const { identifiant, mot_de_passe } = req.body;
const sql = 'SELECT * FROM utilisateur WHERE identifiant = ?';
db.query(sql, [identifiant], async (err, results) => {
if (err) {
console.error('Erreur lors de la requête :', err);
return res.send('Erreur serveur');
}
if (results.length === 0) {
return res.send('Identifiant incorrect');
}
const utilisateur = results[0];
const match = await bcrypt.compare(mot_de_passe, utilisateur.mot_de_passe);
if (!match) {
return res.send('Mot de passe incorrect');
}
// Enregistrement en session
req.session.utilisateur = utilisateur;
console.log("Utilisateur connecté :", req.session.utilisateur);
// Redirection selon le statut
switch (utilisateur.statut) {
case 'administrateur':
return res.redirect('/admin');
case 'complexe':
return res.redirect('/dashboard-complexe');
case 'simple':
return res.redirect('/objets'); // 🔄 Redirection mise à jour ici
case 'visiteur':
default:
return res.redirect('/');
}
});
});
module.exports = router;