• 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

Créez des utilisateurs

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

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. 

Example of certificate of achievement
Example of certificate of achievement