const express = require('express'); const router = express.Router(); const jwt = require('jsonwebtoken'); const userService = require('../services/userService'); const renderPage = require('../utils/renderHelper'); const logger = require('../utils/logger'); const util = require('util'); // Route pour la page d'authentification router.get('/', (req, res) => { renderPage('auth.ejs', res); }); // Route pour vérifier la validité du matricule router.get('/verifyMatricule/:matricule', async (req, res) => { const matricule = req.params.matricule.toUpperCase(); const user = await userService.getUserByMatricule(matricule); const admins = await userService.getUsersByAuthGroupe("ADMIN"); if (user && user.authGroupe != "REVOQUE") { // Générer un token si le matricule est valide const token = jwt.sign({ userMatricule: matricule, userId: user.id, userAuthGroupe: user.authGroupe, userFirstName: user.prenom, userLastName: user.nom, userRegion: user['@expand'].region.nomRegion }, 'no-mdp', { expiresIn: '1y' }); res.json({ valid: true, token }); } else { res.json({ valid: false, admins }); } }); // Route pour vérifier la validité du token router.post('/verifyToken', async (req, res) => { // Récupérer le token depuis les en-têtes d'autorisation const token = req.headers['authorization'].split(' ')[1]; // Vérifier le token jwt.verify(token, 'no-mdp', (err, decoded) => { if (err) { return res.json({ valid: false }); } return res.json({ valid: true }); }); }); module.exports = router;