53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
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;
|