• 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 3/13/20

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

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.

Example of certificate of achievement
Example of certificate of achievement