reset password wip

This commit is contained in:
noot 2024-01-30 16:53:42 +08:00
parent e0b64b2252
commit 12597ad774
3 changed files with 28 additions and 27 deletions

View File

@ -51,7 +51,7 @@ async function addToken(userId, permission, isKey ,expiry) {
} }
async function addPasswordResetToken(data , token){ async function addPasswordResetToken(data , token){
let hashtoken = await hash(uuid); let hashtoken = await hash(token);
let currentDate = new Date(); let currentDate = new Date();
let tokenToLive = new Date(currentDate.getTime() + 15 * 60000); let tokenToLive = new Date(currentDate.getTime() + 15 * 60000);

View File

@ -76,8 +76,7 @@ async function sendTokenEmail(email, token) {
} }
} }
async function sendResetPasswordEmail(email, link, resetToken) { async function sendResetPasswordEmail(email, resetToken) {
console.log(email);
try { try {
let resetMessage = await transporter.sendMail({ let resetMessage = await transporter.sendMail({
to: email, to: email,
@ -85,10 +84,9 @@ async function sendResetPasswordEmail(email, link, resetToken) {
subject: "Reset Password", subject: "Reset Password",
html: ` html: `
<h1>Reset Password</h1> <h1>Reset Password</h1>
<p><strong>Reset Password Link:</strong> ${link}</p> <p><strong>Reset Password Link:</strong> <a href="localhost/api/v0/auth/resetpassword/${resetToken}">Reset Password Link </p>
<p><strong>One time token:</strong> ${resetToken}</p>
<p><strong>From:</strong> Eco Saver</p> <p><strong>From:</strong> Eco Saver</p>
<p>Kindly click on the link and key in the one time token given to reset your password!</p> <p>Kindly click on the link to reset your password!</p>
<p>Regards,</p> <p>Regards,</p>
<p>EcoSaver Team</p> <p>EcoSaver Team</p>
<p><a href="https://ecosaver.teeseng.uk/">EcoSaver Website</a></p> <p><a href="https://ecosaver.teeseng.uk/">EcoSaver Website</a></p>

View File

@ -1,7 +1,13 @@
const { addUser, loginUser, checkEmail , checkEmailDetails } = require("../functions/user"); const {
addUser,
loginUser,
checkEmail,
checkEmailDetails,
} = require("../functions/user");
const { sendContactEmail } = require("../functions/nodeMail"); const { sendContactEmail } = require("../functions/nodeMail");
const { generateUUID } = require("../functions/generateUUID"); const { generateUUID } = require("../functions/generateUUID");
const { } = require("../functions/api"); const { addPasswordResetToken } = require("../functions/api");
const { sendResetPasswordEmail } = require("../functions/nodeMail");
const express = require("express"); const express = require("express");
const router = express.Router(); const router = express.Router();
@ -59,14 +65,12 @@ router.post("/contact", async (req, res, next) => {
let error = new Error("Email not found"); let error = new Error("Email not found");
error.status = 400; error.status = 400;
return next(error); return next(error);
} } else {
else{
//console.log(Res); //console.log(Res);
sendContactEmail(req.body.email, req.body.name, req.body.message); sendContactEmail(req.body.email, req.body.name, req.body.message);
return res.json({ return res.json({
message: "Email sent successfully", message: "Email sent successfully",
}); });
} }
} catch (error) { } catch (error) {
console.error(error); console.error(error);
@ -77,14 +81,12 @@ router.post("/contact", async (req, res, next) => {
//reset //reset
router.post("/checkemail", async (req, res, next) => { router.post("/checkemail", async (req, res, next) => {
try { try {
let Res = await checkEmail(req.body.email); let Res = await checkEmail(req.body.email);
if (!Res) { if (!Res) {
let error = new Error("Email not found"); let error = new Error("Email not found");
error.status = 400; error.status = 400;
return next(error); return next(error);
} } else {
else{
//user info lookup //user info lookup
let data = await checkEmailDetails(req.body.email); let data = await checkEmailDetails(req.body.email);
//console.log(data); //console.log(data);
@ -97,26 +99,27 @@ router.post("/checkemail", async (req, res, next) => {
if (!tokenRes) return false; if (!tokenRes) return false;
//email logic to send reset password link //email logic to send reset password link
sendResetPasswordEmail(req.body.email, token);
return res.json({ return res.json({
message: "Reset Password Link has successfully sent to your email!", message: "Reset Password Link has successfully sent to your email!",
}); });
} }
} catch (error) { } catch (error) {
console.error(error); console.error(error);
next(error); next(error);
} }
});
router.get("/resetpassword/:token", async (req, res, next) => {
//pass token to reset password page
});
//reset password
router.post("/resetpassword", async (req, res, next) => {
}); });
module.exports = router; module.exports = router;
/*
router.get('/login/resetpassword/:token', async function(req, res, next){
res.render('reset_password', {});
});
*/