mise en place du mdp random lors de l'ajout d'un user et de l'envoi de celui ci par mail

master
Tristan BARLET 3 years ago
parent fde99e6195
commit 1e8c8128b3

@ -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

@ -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" <JTT@CRM.fr>',
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) => {

@ -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",

@ -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",

@ -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() {
<p>Email :</p>
<p>Rôle :</p>
<p>Identifiant :</p>
<p>Mot de passe :</p>
</div>
</tr>
<tr className="two-2">
@ -91,7 +89,6 @@ function Admin_create() {
))}
</Select>
<input id="identifiant" name='login' className="texte_zone" type="text" placeholder="Identifiant..." required/>
<input id="password" name='password' className="texte_zone" type="password" placeholder="Mot de passe..." required/>
</tr>
</table>
<p>{loginError === true?"L'identifiant existe déja":''}</p>

Loading…
Cancel
Save