SQUASH: I think I got it working

This commit is contained in:
2021-07-29 00:36:20 +10:00
parent 6b3db67a29
commit b51d22f1a1
4 changed files with 49 additions and 44 deletions
+3 -3
View File
@@ -25,13 +25,13 @@ const route = async (req, res) => {
} }
//save the token //save the token
recovery.upsert({ await recovery.upsert({
email: req.body.email, email: req.body.email,
token: token token: token
}); });
//finally //finally
res.status(200).send("Validation email sent!"); res.status(200).send("Recovery email sent!");
return null; return null;
}; };
@@ -57,7 +57,7 @@ const validateDetails = async (body) => {
}; };
const sendRecoveryEmail = async (email, token) => { const sendRecoveryEmail = async (email, token) => {
const addr = `${process.env.WEB_PROTOCOL}://${process.env.WEB_ADDRESS}/auth/validation?token=${token}`; const addr = `${process.env.WEB_PROTOCOL}://${process.env.WEB_ADDRESS}/auth/reset?token=${token}`;
const msg = `Hello, const msg = `Hello,
Please visit the following link to reset your password: ${addr} Please visit the following link to reset your password: ${addr}
+5 -3
View File
@@ -3,8 +3,10 @@ const { accounts, recovery } = require('../database/models');
//auth/reset //auth/reset
const route = async (req, res) => { const route = async (req, res) => {
//verify the recovery record exists //verify the recovery record exists
const record = recovery.findOne({ const record = await recovery.findOne({
token: req.query.token where: {
token: req.query.token
}
}); });
if (!record) { if (!record) {
@@ -12,7 +14,7 @@ const route = async (req, res) => {
} }
//redirect to the front-end //redirect to the front-end
res.redirect(`${process.env.WEB_PROTOCOL}${process.env.WEB_RESET_ADDRESS}?email=${record.email}&token=${record.token}`); res.redirect(`${process.env.WEB_PROTOCOL}://${process.env.WEB_RESET_ADDRESS}?email=${record.email}&token=${record.token}`);
return null; return null;
}; };
+8 -5
View File
@@ -15,7 +15,7 @@ const route = async (req, res) => {
const hash = await bcrypt.hash(req.body.password, await bcrypt.genSalt(11)); const hash = await bcrypt.hash(req.body.password, await bcrypt.genSalt(11));
//update the account data //update the account data
accounts.update({ await accounts.update({
hash: hash hash: hash
}, { }, {
where: { where: {
@@ -24,20 +24,23 @@ const route = async (req, res) => {
}) })
//delete from the recovery table //delete from the recovery table
recovery.destroy({ await recovery.destroy({
where: { where: {
email: req.query.email email: req.query.email
} }
}); });
res.status(200).end();
return null; return null;
}; };
const validateDetails = async (query, body) => { const validateDetails = async (query, body) => {
//verify the recovery record exists //verify the recovery record exists
const record = recovery.findOne({ const record = await recovery.findOne({
email: query.email, where: {
token: query.token email: query.email,
token: query.token
}
}); });
if (!record) { if (!record) {