• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 13/03/2020

Vérifiez les informations d'identification d'un utilisateur

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Implémentez la fonction login

Maintenant que nous pouvons créer des utilisateurs dans la base de données, il nous faut une méthode permettant de vérifier si un utilisateur qui tente de se connecter dispose d'identifiants valides. Implémentons donc notre fonction login :

exports.login = (req, res, next) => {
User.findOne({ email: req.body.email })
.then(user => {
if (!user) {
return res.status(401).json({ error: 'Utilisateur non trouvé !' });
}
bcrypt.compare(req.body.password, user.password)
.then(valid => {
if (!valid) {
return res.status(401).json({ error: 'Mot de passe incorrect !' });
}
res.status(200).json({
userId: user._id,
token: 'TOKEN'
});
})
.catch(error => res.status(500).json({ error }));
})
.catch(error => res.status(500).json({ error }));
};

Dans cette fonction :

  • nous utilisons notre modèle Mongoose pour vérifier que l'e-mail entré par l'utilisateur correspond à un utilisateur existant de la base de données :

    • dans le cas contraire, nous renvoyons une erreur 401 Unauthorized ,

    • si l'e-mail correspond à un utilisateur existant, nous continuons ;

  • nous utilisons la fonction compare debcrypt pour comparer le mot de passe entré par l'utilisateur avec le hash enregistré dans la base de données :

    • s'ils ne correspondent pas, nous renvoyons une erreur 401 Unauthorized et un message « Mot de passe incorrect ! » ;

    • s'ils correspondent, les informations d'identification de notre utilisateur sont valides. Dans ce cas, nous renvoyons une réponse 200 contenant l'ID utilisateur et un token. Ce token est une chaîne générique pour l'instant, mais nous allons le modifier et le crypter dans le prochain chapitre.

Dans le chapitre suivant, vous découvrirez l'authentification par token, son rôle, son mode de fonctionnement et comment nous l'appliquerons dans notre nouvelle application pour sécuriser correctement notre API.

Exemple de certificat de réussite
Exemple de certificat de réussite