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
- Premièrement, ajouter
bcryptà l'import du service. Cette importation doit être faite manuellement!
src/utilisateurs/utilisateurs.service.ts
import * as bcrypt from 'bcrypt';
- 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.