Aller au contenu principal

36-6 Installation et utilisation de bcrypt

Tel que vu en introduction, il est nécessaire de chiffer le mot de passe avant de le sauvegarder dans la base de données afin de le stocker de façon sécuritaire.

Pour stocker le mot de passe, on utilisera l'algorithme très répandu bcrypt.

Installer bcrypt

npm install bcrypt
npm install -D @types/bcrypt

Hacher le mot de passe avant la sauvegarde

  1. Premièrement, ajouter bcrypt à l'import du service. Cette importation doit être faite manuellement!
src/utilisateurs/utilisateurs.service.ts
import * as bcrypt from 'bcrypt';
  1. Utiliser la fonction hash
async create(createUtilisateurDto: CreateUtilisateurDto) {
const { prenom, nom, courriel, nomUtilisateur, password } = createUtilisateurDto;
const utilisateur = Utilisateur.create({
prenom: prenom,
nom: nom,
courriel: courriel,
nomUtilisateur: nomUtilisateur,
}
);

utilisateur.password = await bcrypt.hash(password, 12);

return utilisateur.save();
}
info

12 est le nombre d'itérations de l'algorithme. Plus le chiffre est élevé, plus le hachage est fort, mais aussi plus le temps de le produire est élevé.

Test Postman

POST http://localhost:3000/utilisateurs

{
"prenom": "Benoit",
"nom": "Tremblay",
"courriel": "benoit.tremblay@cegepdrummond.ca",
"nomUtilisateur": "bentremblay",
"password": "p@ssword"
}

Résultat:

{
"prenom": "Benoit",
"nom": "Tremblay",
"courriel": "benoit.tremblay@cegepdrummond.ca",
"nomUtilisateur": "bentremblay",
"password": "$2b$12$U1RFACRCwuF3QG639Nl2suvc6vx01UGENYGfZ/eIyF0thgWeDPxp2",
"id": 1,
"date_creation": "2024-11-11T21:26:57.746Z",
"date_modification": "2024-11-11T21:26:57.746Z"
}
attention

Oops! Le mot de passe est retourné dans la réponse.