• 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

Créez des utilisateurs

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

Configurez les routes d'authentification

Commençons par créer l'infrastructure nécessaire à nos routes d'authentification. Il nous faudra un contrôleur et un routeur, puis nous devrons enregistrer ce routeur dans notre application Express.

D'abord, créez un fichier user.js dans votre dossier controllers :

exports.signup = (req, res, next) => {
};
exports.login = (req, res, next) => {
};

Nous implémenterons ces fonctions bientôt. Pour l'instant, terminons la création des routes.

Pour ce faire, créez un autre fichier user.js , cette fois dans votre dossier routes :

const express = require('express');
const router = express.Router();
const userCtrl = require('../controllers/user');
router.post('/signup', userCtrl.signup);
router.post('/login', userCtrl.login);
module.exports = router;

Les routes fournies sont celles prévues par l'application front-end.

Maintenant, enregistrons notre routeur dans notre application. Pour ce faire, importez le routeur :

const userRoutes = require('./routes/user');

Puis enregistrez-le :

app.use('/api/stuff', stuffRoutes);
app.use('/api/auth', userRoutes);

Nos routes sont maintenant prêtes. Il est temps de commencer l'implémentation de la logique métier.

Créez des utilisateurs

Il nous faudra le package de chiffrement bcrypt pour notre fonction signup . Installons-le donc dans notre projet :

npm install --save bcrypt

Nous pouvons l'importer dans notre contrôleur et implémenter notre fonction signup (n'oubliez pas d'importer votre modèle User !) :

exports.signup = (req, res, next) => {
bcrypt.hash(req.body.password, 10)
.then(hash => {
const user = new User({
email: req.body.email,
password: hash
});
user.save()
.then(() => res.status(201).json({ message: 'Utilisateur créé !' }))
.catch(error => res.status(400).json({ error }));
})
.catch(error => res.status(500).json({ error }));
};

Dans cette fonction :

  • nous appelons la fonction de hachage de bcrypt dans notre mot de passe et lui demandons de « saler » le mot de passe 10 fois. Plus la valeur est élevée, plus l'exécution de la fonction sera longue, et plus le hachage sera sécurisé. Pour plus d'informations, consultez la documentation de bcrypt ;

  • il s'agit d'une fonction asynchrone qui renvoie une Promise dans laquelle nous recevons le hash généré ;

  • dans notre bloc then , nous créons un utilisateur et l'enregistrons dans la base de données, en renvoyant une réponse de réussite en cas de succès, et des erreurs avec le code d'erreur en cas d'échec ;

Dans le chapitre suivant, nous implémenterons notre fonction login pour vérifier les informations d'identification des utilisateurs pour leur permettre de se connecter. 

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