blah
This commit is contained in:
parent
884209ee9c
commit
4346f92471
@ -15,7 +15,7 @@ const sequelize = new Sequelize(
|
||||
attributeBehavior: 'escape',
|
||||
dialectOptions: {
|
||||
ssl: {
|
||||
ca: fs.readFileSync(path.resolve(__dirname, '../cert/DigiCertGlobalRootCA.crt.pem')),
|
||||
ca: fs.readFileSync(path.resolve(__dirname, '../cert/DigiCertGlobalRootCA.crt_3.pem')),
|
||||
},
|
||||
|
||||
},
|
||||
|
@ -50,6 +50,21 @@ async function addToken(userId, permission, isKey ,expiry) {
|
||||
return token.id + "-" + uuid;
|
||||
}
|
||||
|
||||
async function addPasswordResetToken(data , token){
|
||||
let hashtoken = await hash(uuid);
|
||||
let currentDate = new Date();
|
||||
let tokenToLive = new Date(currentDate.getTime() + 15 * 60000);
|
||||
|
||||
let tokenRes = await tokenModel.create({
|
||||
userid: data.id,
|
||||
token: hashtoken,
|
||||
permission: "canRead",
|
||||
isKey: "isNotKey",
|
||||
expiration: tokenToLive,
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
async function checkToken(id) {
|
||||
let tokenRes = await tokenModel.findOne(
|
||||
{
|
||||
@ -62,4 +77,6 @@ async function checkToken(id) {
|
||||
return tokenRes;
|
||||
}
|
||||
|
||||
module.exports = { addToken, getTokenByToken , checkToken};
|
||||
|
||||
|
||||
module.exports = { addToken, getTokenByToken , checkToken , addPasswordResetToken};
|
||||
|
@ -152,6 +152,17 @@ async function checkEmail(email) {
|
||||
|
||||
}
|
||||
|
||||
async function checkEmailDetails(email) {
|
||||
let emailRes = await userModel.findOne({
|
||||
where: {
|
||||
email: email,
|
||||
},
|
||||
});
|
||||
if (!emailRes) return false;
|
||||
return emailRes;
|
||||
|
||||
}
|
||||
|
||||
|
||||
module.exports = {
|
||||
getUserByID,
|
||||
@ -159,5 +170,6 @@ module.exports = {
|
||||
addUser,
|
||||
loginUser,
|
||||
updateProfile,
|
||||
checkEmail
|
||||
checkEmail,
|
||||
checkEmailDetails
|
||||
};
|
@ -243,6 +243,10 @@ app.auth = (function (app) {
|
||||
location.replace(`/profile`);
|
||||
}
|
||||
|
||||
function checkEmailRedirect(){
|
||||
location.replace(`/checkemail`);
|
||||
}
|
||||
|
||||
return {
|
||||
getToken: getToken,
|
||||
setToken: setToken,
|
||||
@ -252,6 +256,7 @@ app.auth = (function (app) {
|
||||
logInRedirect,
|
||||
homeRedirect,
|
||||
profileRedirect,
|
||||
checkEmailRedirect,
|
||||
};
|
||||
})(app);
|
||||
|
||||
@ -279,6 +284,8 @@ function formAJAX(btn, del) {
|
||||
var $form = $(btn).closest("[action]"); // gets the 'form' parent
|
||||
var formData = $form.find("[name]").serializeObject(); // builds query formDataing
|
||||
var method = $form.attr("method") || "post";
|
||||
console.log("Form data", formData);
|
||||
console.log("Form method", method);
|
||||
|
||||
app.util.actionMessage("Loading...", $form, "info");
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
const { addUser, loginUser, checkEmail } = require("../functions/user");
|
||||
const { addUser, loginUser, checkEmail , checkEmailDetails } = require("../functions/user");
|
||||
const { sendContactEmail } = require("../functions/nodeMail");
|
||||
const { generateUUID } = require("../functions/generateUUID");
|
||||
const { } = require("../functions/api");
|
||||
|
||||
const express = require("express");
|
||||
const router = express.Router();
|
||||
@ -75,7 +77,7 @@ router.post("/contact", async (req, res, next) => {
|
||||
//reset
|
||||
router.post("/checkemail", async (req, res, next) => {
|
||||
try{
|
||||
//console.log(req.body);
|
||||
|
||||
let Res = await checkEmail(req.body.email);
|
||||
if (!Res) {
|
||||
let error = new Error("Email not found");
|
||||
@ -83,17 +85,38 @@ router.post("/checkemail", async (req, res, next) => {
|
||||
return next(error);
|
||||
}
|
||||
else{
|
||||
//console.log(Res);
|
||||
send(req.body.email, req.body.name, req.body.message);
|
||||
//user info lookup
|
||||
let data = await checkEmailDetails(req.body.email);
|
||||
//console.log(data);
|
||||
//token generation and insert into token table
|
||||
const token = await generateUUID();
|
||||
|
||||
let tokenRes = await addPasswordResetToken(data , token);
|
||||
|
||||
//email user with temp token link
|
||||
if (!tokenRes) return false;
|
||||
|
||||
//email logic to send reset password link
|
||||
|
||||
return res.json({
|
||||
message: "Reset Password Link has successfully sent to your email!",
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}catch (error){
|
||||
console.error(error);
|
||||
next(error);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
|
||||
|
||||
/*
|
||||
router.get('/login/resetpassword/:token', async function(req, res, next){
|
||||
res.render('reset_password', {});
|
||||
});
|
||||
|
||||
*/
|
||||
|
@ -38,6 +38,11 @@ router.get("/resetpassword", function (req, res, next) {
|
||||
res.render("resetpassword");
|
||||
});
|
||||
|
||||
//check email page
|
||||
router.get("/checkemail", function (req, res, next) {
|
||||
res.render("checkemail");
|
||||
});
|
||||
|
||||
//contact page
|
||||
router.get("/contact", function (req, res, next) {
|
||||
res.render("contact");
|
||||
|
17
consumerWebsite/views/checkemail.ejs
Normal file
17
consumerWebsite/views/checkemail.ejs
Normal file
@ -0,0 +1,17 @@
|
||||
<%- include('logintop') %>
|
||||
|
||||
<body>
|
||||
<section class="wrapper">
|
||||
<div class="form">
|
||||
<!-- -->
|
||||
<div class="error-contents">
|
||||
<h3>Please check your email for the reset password link</h3>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<a>Dont have an account?</a> <a href="/login">Sign Up</a>
|
||||
<br>
|
||||
<a>Already have an account?</a> <a href="/login">Login</a>
|
||||
</div>
|
||||
</section>
|
||||
</body>
|
@ -4,7 +4,7 @@
|
||||
<section class="wrapper">
|
||||
<div class="form">
|
||||
<header>Reset Password</header>
|
||||
<form action="auth/checkemail" method="POST" onsubmit="formAJAX(this)">
|
||||
<form action="auth/checkemail" onsubmit="formAJAX(this) "evalAJAX="app.auth.checkEmailRedirect();">
|
||||
<input type="email" name="email" placeholder="Email" required
|
||||
pattern="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" />
|
||||
<input type="submit" value="Reset Password" />
|
||||
|
2919
package-lock.json
generated
2919
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -51,6 +51,6 @@
|
||||
"validator": "^13.11.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nodemon": "^3.0.2"
|
||||
"nodemon": "^3.0.3"
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user