From 1e8c8128b34f2cd77fb4bad37dc6ccfa07499123 Mon Sep 17 00:00:00 2001 From: Tristan Barlet Date: Wed, 14 Dec 2022 12:27:55 +0100 Subject: [PATCH] mise en place du mdp random lors de l'ajout d'un user et de l'envoi de celui ci par mail --- Doc/commande.txt | 1 + server-api/api.js | 29 ++++++++++++++++++++++++++++- server-api/package-lock.json | 24 ++++++++++++++++++++++++ server-api/package.json | 1 + src/pages/Admin_create.js | 3 --- 5 files changed, 54 insertions(+), 4 deletions(-) diff --git a/Doc/commande.txt b/Doc/commande.txt index 5e46291..7c54e87 100644 --- a/Doc/commande.txt +++ b/Doc/commande.txt @@ -6,6 +6,7 @@ npm install --save mysql npm install --save express npm install -g nodemon npm install --save-dev nodemon +npm install crypto-js npm install --save axios diff --git a/server-api/api.js b/server-api/api.js index a6d8d6a..f438715 100644 --- a/server-api/api.js +++ b/server-api/api.js @@ -3,7 +3,10 @@ const express = require('express'); const cors=require("cors"); const bodyparser = require('body-parser'); + const nodemailer = require('nodemailer'); +const CryptoJS = require('crypto-js'); + // Créer un transporteur de mail let transporter = nodemailer.createTransport({ @@ -240,13 +243,37 @@ app.post('/User/Add', (req, res) => { let form = req.body; console.log(form); + + let rand_pass = ""; + const carac="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&*#-+@!$%?/()[]{}0123456789&*#-+@!$%?/()[]{}"; + for(var i=0;i<10;i++) + { + rand_pass += carac[Math.floor(Math.random()*carac.length)]; + } - const sql = `INSERT INTO users(lastname, firstname, idrole, login, password, phone, mail) VALUES ('${form.lastname}', '${form.firstname}', '${form.idrole}', '${form.login}', '${form.password}', '${form.phone}', '${form.mail}')`; + const sql = `INSERT INTO users(lastname, firstname, idrole, login, password, phone, mail) VALUES ('${form.lastname}', '${form.firstname}', '${form.idrole}', '${form.login}', '${CryptoJS.SHA256(rand_pass).toString(CryptoJS.enc.Hex)}', '${form.phone}', '${form.mail}')`; db.query(sql , (err, result) => { if (err) throw err; console.log(result); res.send('Post added...' + result.insertId); }); + + let mailOptions = { + from: '"JTT CRM" ', + to: form.mail, + subject: "Connexion a JTTCRM", + text: "Voici ton mot de passe : " + rand_pass, + }; + + transporter.sendMail(mailOptions, (error, info) => { + if (error) { + console.log(error); + } else { + console.log('Email sent with mdp: ' + info.response); + } + }); + + }); app.put('/User/Update/:id', (req, res) => { diff --git a/server-api/package-lock.json b/server-api/package-lock.json index e202ab0..0649b0d 100644 --- a/server-api/package-lock.json +++ b/server-api/package-lock.json @@ -17,6 +17,7 @@ "body-parser": "^1.20.1", "corps": "^0.1.0", "cors": "^2.8.5", + "crypto-js": "^4.1.1", "express": "^4.18.2", "fullcalendar": "^5.11.3", "googleapis": "^105.0.0", @@ -1402,6 +1403,19 @@ "node": ">=10" } }, + "node_modules/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "node_modules/cryptojs": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/cryptojs/-/cryptojs-2.5.3.tgz", + "integrity": "sha512-+rdPl1UCxE8s3R94NNn+zMKOiI4MJ7dyh3X0c5uBL3btDr4zQ6acd7f9mY7Wb5MrccZEi2Rrha3OEtLcc5XXog==", + "engines": { + "node": "*" + } + }, "node_modules/csstype": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", @@ -3976,6 +3990,16 @@ "yaml": "^1.10.0" } }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "cryptojs": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/cryptojs/-/cryptojs-2.5.3.tgz", + "integrity": "sha512-+rdPl1UCxE8s3R94NNn+zMKOiI4MJ7dyh3X0c5uBL3btDr4zQ6acd7f9mY7Wb5MrccZEi2Rrha3OEtLcc5XXog==" + }, "csstype": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", diff --git a/server-api/package.json b/server-api/package.json index 94e8247..93ba6ec 100644 --- a/server-api/package.json +++ b/server-api/package.json @@ -17,6 +17,7 @@ "body-parser": "^1.20.1", "corps": "^0.1.0", "cors": "^2.8.5", + "crypto-js": "^4.1.1", "express": "^4.18.2", "fullcalendar": "^5.11.3", "googleapis": "^105.0.0", diff --git a/src/pages/Admin_create.js b/src/pages/Admin_create.js index 8fa3533..ba315e8 100644 --- a/src/pages/Admin_create.js +++ b/src/pages/Admin_create.js @@ -45,7 +45,6 @@ function Admin_create() { } else { setLoginError(false); - values.password = CryptoJS.SHA256(values.password).toString(CryptoJS.enc.Hex); api.post('/User/Add', values).then (function(response) { console.log(response.data); @@ -72,7 +71,6 @@ function Admin_create() {

Email :

Rôle :

Identifiant :

-

Mot de passe :

@@ -91,7 +89,6 @@ function Admin_create() { ))} -

{loginError === true?"L'identifiant existe déja":''}