const bcrypt = require('bcryptjs'); const db = require('../models/db'); exports.signup = (req, res, next) => { let { username, lastname, firstname, birthdate, password } = req.body; const hash = bcrypt.hash(password, 10); hash.then( hash => { //enregistrer les infos de l'utilisateur et le hash du mdp en base de données db.query('INSERT INTO Utilisateur VALUES(?,?,?,?,?)', [username, lastname, firstname, hash, birthdate], function (error, results, fields) { if (error == null) { res.status(201).json({ message: 'Utilisateur ajouté' }); } else { res.status(500).json({ error }); } }) } ) .catch(error => res.status(500).json({ error })) }; exports.login = (req, res, next) => { let { username, password } = req.body; db.query('SELECT COUNT(*) c, mdp FROM Utilisateur WHERE login=?', [username], function (error, results, fields) { if (!error) { if (results[0].c == 1) { bcrypt.compare(password, results[0].mdp).then( valid => { if (!valid) { return res.status(401).json({ message: 'Identifiant ou mot de passe incorrect' }); // Le mot de passe donné ne corresponds pas à celui dans la bdd } else { req.session.username = username; res.status(200).json({ message: 'Connecté !' }); } } ) .catch(error => { res.status(500).json({ error }) }); } else { //pas d'utilisateur trouvé avec ce username res.status(401).json({ message: 'Identifiant ou mot de passe incorrect' }); } } else { res.status(500).json({ error }); } }); }; exports.logout = (req,res,next) => { req.session.username = null; res.status(200).json({ message: 'Déconnecté !' }); }; exports.getUserInformations = (req,res,next) => { let username = req.session.username; //renvoyer login, nom, prenom, dateNais };