Added route for validating recovery token
This commit is contained in:
1 parent
276dadab66
commit
0eda4ceb77
3 files changed
+36
-2
No files matched your search
@@ -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,
|
||||
};
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
Reference in new issue
Block a user