Newer
Older
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) => {
db.query('SELECT COUNT(*) c, mdp FROM Utilisateur WHERE login=?', [username], function (error, results, fields) {
if (!error) {
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 {
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
db.query('SELECT login,nom,prenom,dateNais FROM Utilisateur WHERE login = ?',
[username],function (error,results,fields) {
if (error) {
res.status(500).json({error});
} else {
let infos = {
username : results[0].login,
lastname : results[0].nom,
firstname : results[0].prenom,
birthdate : results[0].dateNais
};
res.status(200).json(infos);
}
})