blah
This commit is contained in:
parent
884209ee9c
commit
4346f92471
@ -15,7 +15,7 @@ const sequelize = new Sequelize(
|
|||||||
attributeBehavior: 'escape',
|
attributeBehavior: 'escape',
|
||||||
dialectOptions: {
|
dialectOptions: {
|
||||||
ssl: {
|
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;
|
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) {
|
async function checkToken(id) {
|
||||||
let tokenRes = await tokenModel.findOne(
|
let tokenRes = await tokenModel.findOne(
|
||||||
{
|
{
|
||||||
@ -62,4 +77,6 @@ async function checkToken(id) {
|
|||||||
return tokenRes;
|
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 = {
|
module.exports = {
|
||||||
getUserByID,
|
getUserByID,
|
||||||
@ -159,5 +170,6 @@ module.exports = {
|
|||||||
addUser,
|
addUser,
|
||||||
loginUser,
|
loginUser,
|
||||||
updateProfile,
|
updateProfile,
|
||||||
checkEmail
|
checkEmail,
|
||||||
|
checkEmailDetails
|
||||||
};
|
};
|
@ -243,6 +243,10 @@ app.auth = (function (app) {
|
|||||||
location.replace(`/profile`);
|
location.replace(`/profile`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function checkEmailRedirect(){
|
||||||
|
location.replace(`/checkemail`);
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
getToken: getToken,
|
getToken: getToken,
|
||||||
setToken: setToken,
|
setToken: setToken,
|
||||||
@ -252,6 +256,7 @@ app.auth = (function (app) {
|
|||||||
logInRedirect,
|
logInRedirect,
|
||||||
homeRedirect,
|
homeRedirect,
|
||||||
profileRedirect,
|
profileRedirect,
|
||||||
|
checkEmailRedirect,
|
||||||
};
|
};
|
||||||
})(app);
|
})(app);
|
||||||
|
|
||||||
@ -279,6 +284,8 @@ function formAJAX(btn, del) {
|
|||||||
var $form = $(btn).closest("[action]"); // gets the 'form' parent
|
var $form = $(btn).closest("[action]"); // gets the 'form' parent
|
||||||
var formData = $form.find("[name]").serializeObject(); // builds query formDataing
|
var formData = $form.find("[name]").serializeObject(); // builds query formDataing
|
||||||
var method = $form.attr("method") || "post";
|
var method = $form.attr("method") || "post";
|
||||||
|
console.log("Form data", formData);
|
||||||
|
console.log("Form method", method);
|
||||||
|
|
||||||
app.util.actionMessage("Loading...", $form, "info");
|
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 { sendContactEmail } = require("../functions/nodeMail");
|
||||||
|
const { generateUUID } = require("../functions/generateUUID");
|
||||||
|
const { } = require("../functions/api");
|
||||||
|
|
||||||
const express = require("express");
|
const express = require("express");
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -75,7 +77,7 @@ 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{
|
||||||
//console.log(req.body);
|
|
||||||
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");
|
||||||
@ -83,17 +85,38 @@ router.post("/checkemail", async (req, res, next) => {
|
|||||||
return next(error);
|
return next(error);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
//console.log(Res);
|
//user info lookup
|
||||||
send(req.body.email, req.body.name, req.body.message);
|
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({
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = router;
|
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");
|
res.render("resetpassword");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//check email page
|
||||||
|
router.get("/checkemail", function (req, res, next) {
|
||||||
|
res.render("checkemail");
|
||||||
|
});
|
||||||
|
|
||||||
//contact page
|
//contact page
|
||||||
router.get("/contact", function (req, res, next) {
|
router.get("/contact", function (req, res, next) {
|
||||||
res.render("contact");
|
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">
|
<section class="wrapper">
|
||||||
<div class="form">
|
<div class="form">
|
||||||
<header>Reset Password</header>
|
<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
|
<input type="email" name="email" placeholder="Email" required
|
||||||
pattern="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" />
|
pattern="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" />
|
||||||
<input type="submit" value="Reset Password" />
|
<input type="submit" value="Reset Password" />
|
||||||
|
3377
package-lock.json
generated
3377
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -51,6 +51,6 @@
|
|||||||
"validator": "^13.11.0"
|
"validator": "^13.11.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"nodemon": "^3.0.2"
|
"nodemon": "^3.0.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user