Added route for validating recovery token

This commit is contained in:
Alex Holliday committed 2024-06-10 16:07:52 -07:00
1 parent 276dadab66
commit 0eda4ceb77
3 files changed
+36 -2

No files matched your search

+19 -2
View File
@@ -153,10 +153,9 @@ const userEditController = async (req, res, next) => {
};
const recoveryRequestController = async (req, res, next) => {
const email = req.body.email;
try {
const email = req.body.email;
const user = await req.db.getUserByEmail(req, res);
// TODO Email token to user
if (user) {
const recoveryToken = await req.db.requestRecoveryToken(req, res);
console.log(recoveryToken);
@@ -166,6 +165,23 @@ const recoveryRequestController = async (req, res, next) => {
data: recoveryToken.token,
});
}
// TODO Email token to user
} catch (error) {
error.service = SERVICE_NAME;
next(error);
return;
}
};
const validateRecoveryTokenController = async (req, res, next) => {
try {
const candidateToken = req.body.recoveryToken;
const recoveryToken = await req.db.validateRecoveryToken(req, res);
return res.status(200).json({
success: true,
msg: "Token is valid",
data: recoveryToken,
});
} catch (error) {
error.service = SERVICE_NAME;
next(error);
@@ -177,4 +193,5 @@ module.exports = {
loginController,
userEditController,
recoveryRequestController,
validateRecoveryTokenController,
};
+15
View File
@@ -112,6 +112,20 @@ const requestRecoveryToken = async (req, res) => {
}
};
const validateRecoveryToken = async (req, res) => {
try {
const candidateToken = req.body.recoveryToken;
const recoveryToken = await RecoveyToken.findOne({ token: candidateToken });
if (recoveryToken !== null) {
return recoveryToken;
} else {
throw new Error("Token not found");
}
} catch (error) {
throw error;
}
};
//****************************************
// Monitors
//****************************************
@@ -420,6 +434,7 @@ module.exports = {
getUserByEmail,
updateUser,
requestRecoveryToken,
validateRecoveryToken,
getAllMonitors,
getMonitorById,
getMonitorsByUserId,
+2
View File
@@ -6,6 +6,7 @@ const {
loginController,
userEditController,
recoveryRequestController,
validateRecoveryTokenController,
} = require("../controllers/authController");
router.post("/register", registerController);
@@ -15,5 +16,6 @@ router.post("/user/:userId", verifyJWT, userEditController);
//Recovery routes
router.post("/recovery/request", recoveryRequestController);
router.post("/recovery/validate", validateRecoveryTokenController);
module.exports = router;