• 10 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 11/26/21

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

Log in or subscribe for free to enjoy all this course has to offer!

Implémentez la fonction login

Regardons comment faire cela ensemble, dans la vidéo suivante !

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 de bcrypt 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.

En résumé

  • La méthode compare de bcrypt compare un string avec un hash pour, par exemple, vérifier si un mot de passe entré par l'utilisateur correspond à un hash sécurisé enregistré en base de données – cela montre que même bcrypt ne peut pas décrypter ses propres hashs.

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.

Example of certificate of achievement
Example of certificate of achievement