diff --git a/controllers/userController.js b/controllers/userController.js index 9976932..520f8c9 100644 --- a/controllers/userController.js +++ b/controllers/userController.js @@ -7,7 +7,7 @@ import sendEmail from "../Utils/sendEmail.js" import crypto from "crypto" import cloudinary from "cloudinary" import generator from 'generate-password' - +import password from 'secure-random-password' // 1.Register a User export const registerUser = async (req, res, next) => { try { @@ -110,11 +110,16 @@ export const forgotPassword = catchAsyncErrors(async (req, res, next) => { // )}/api/v1/user/password/reset/${resetToken}`; //const resetPasswordUrl = `${process.env.FRONTEND_URL}:/api/user/password/reset/${resetToken}`; //const resetPasswordUrl = `${process.env.FRONTEND_URL}/password/reset/${resetToken}`; - const password = generator.generate({ - length: 10, - numbers: true - }); - user.password = password; + const passwords = password.randomPassword({ + length: 12, + characters: [ + { characters: password.upper, exactly: 1 }, + { characters: password.symbols, exactly: 1 }, + password.lower, + password.digits] + }) + + user.password = passwords; await user.save() // const message = `Your password reset token are :- \n\n ${resetPasswordUrl} \n\nyour new password is:${password}\n\nIf you have not requested this email then, please ignore it.`; try { @@ -122,9 +127,11 @@ export const forgotPassword = catchAsyncErrors(async (req, res, next) => { await sendEmail({ to: `${user.email}`, // Change to your recipient - from: 'project.edufuture@gmail.com', // Change to your verified sender + + from: 'project.saleschampions@gmail.com', // Change to your verified sender + // from: 'project.edufuture@gmail.com', // Change to your verified sender subject: `CMP Password Recovery`, - html: `your new password is:
${password}

If you have not requested this email then, please ignore it.` + html: `your new password is:
${passwords}

If you have not requested this email then, please ignore it.` }); diff --git a/package-lock.json b/package-lock.json index 281c6ea..b5a13ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "mongoose": "^6.3.5", "multer": "^1.4.5-lts.1", "nodemailer": "^6.7.5", + "secure-random-password": "^0.2.3", "validator": "^13.7.0" } }, @@ -1626,6 +1627,19 @@ "node": ">=6" } }, + "node_modules/secure-random": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/secure-random/-/secure-random-1.1.2.tgz", + "integrity": "sha512-H2bdSKERKdBV1SwoqYm6C0y+9EA94v6SUBOWO8kDndc4NoUih7Dv6Tsgma7zO1lv27wIvjlD0ZpMQk7um5dheQ==" + }, + "node_modules/secure-random-password": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/secure-random-password/-/secure-random-password-0.2.3.tgz", + "integrity": "sha512-2zpmr6pK3CZGIS9fgApFw00/tKEBVbJTqe4AZLrLNgahCK6ueIR5uMzvbERNibr8hkWneMcOqDcm4wpHWUxrYw==", + "dependencies": { + "secure-random": "^1.1.2" + } + }, "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -2186,8 +2200,7 @@ "cloudinary-core": { "version": "2.12.3", "resolved": "https://registry.npmjs.org/cloudinary-core/-/cloudinary-core-2.12.3.tgz", - "integrity": "sha512-Ll4eDzcrIVn4zCttMh3Mdi+KNz07p5EEjBT2PQSRx8Eok1lKPt3uBBenOk/w88RKK3B8SFIWcEe/mN4BHQ0p8A==", - "requires": {} + "integrity": "sha512-Ll4eDzcrIVn4zCttMh3Mdi+KNz07p5EEjBT2PQSRx8Eok1lKPt3uBBenOk/w88RKK3B8SFIWcEe/mN4BHQ0p8A==" }, "concat-stream": { "version": "1.6.2", @@ -3171,6 +3184,19 @@ "sparse-bitfield": "^3.0.3" } }, + "secure-random": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/secure-random/-/secure-random-1.1.2.tgz", + "integrity": "sha512-H2bdSKERKdBV1SwoqYm6C0y+9EA94v6SUBOWO8kDndc4NoUih7Dv6Tsgma7zO1lv27wIvjlD0ZpMQk7um5dheQ==" + }, + "secure-random-password": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/secure-random-password/-/secure-random-password-0.2.3.tgz", + "integrity": "sha512-2zpmr6pK3CZGIS9fgApFw00/tKEBVbJTqe4AZLrLNgahCK6ueIR5uMzvbERNibr8hkWneMcOqDcm4wpHWUxrYw==", + "requires": { + "secure-random": "^1.1.2" + } + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", diff --git a/package.json b/package.json index 0cdacda..3bac299 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "mongoose": "^6.3.5", "multer": "^1.4.5-lts.1", "nodemailer": "^6.7.5", + "secure-random-password": "^0.2.3", "validator": "^13.7.0" } } diff --git a/tmp/tmp-1-1666076256102 b/tmp/tmp-1-1666076256102 new file mode 100644 index 0000000..6fb99c9 Binary files /dev/null and b/tmp/tmp-1-1666076256102 differ