const express = require('express'); const bcrypt = require('bcrypt'); const fs = require('fs'); const router = express.Router(); const { createToken, addToDenylist } = require('../utils/jwtHelpers'); // carica utenti const userdb = JSON.parse(fs.readFileSync('./api_v1/users.json', 'utf-8')); // LOGIN router.post('/login', async (req, res) => { const { email, password } = req.body; const user = userdb.users.find((u) => u.email === email); if (!user) { return res.status(401).json({ message: 'Incorrect email or password' }); } const ok = await bcrypt.compare(password, user.password); if (!ok) { return res.status(401).json({ message: 'Incorrect email or password' }); } const token = createToken({ id: user.id, email: user.email, name: user.name, }); res.json({ token, name: user.name }); }); // LOGOUT router.post('/logout', (req, res) => { const auth = req.headers.authorization || ''; const [scheme, token] = auth.split(' '); if (scheme === 'Bearer' && token) { addToDenylist(token); } res.status(204).end(); }); module.exports = router;