personnal/ecole/src copy/controllers/authController.js

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;