on my website I have a login form where the user inputs their information and when they submit a post request is made where their info is checked, and if it is valid I redirect them back to the login form where they then enter the code that was sent to their email. My question is when the post request is made the second time how would I use the same url but not have to go through the validating again.
Auth.js
//Login Route
router.post('/login', async(req, res) => {
//Validate Data
const { error } = loginValidation(req.body);
if (error) {
let msg = error.message;
return res.cookie('loginError', msg, [{ httpOnly: true }]).redirect('/login');;
}
//Check if user exists
const user = await User.findOne({ email: req.body.email });
if (!user) {
let msg = 'Email or password is invalid!'
return res.cookie('loginError', msg, [{ httpOnly: true }]).redirect('/login');;
}
//Check if password is correct
const validPass = await bcrypt.compare(req.body.password, user.password);
if (!validPass) {
let msg = 'Email or password is invalid!'
return res.cookie('loginError', msg, [{ httpOnly: true }]).redirect('/login');;
}
const verificationCode = Math.floor(100000 + Math.random() * 900000);
email.loginCode(req.body.email, verificationCode);
return res.cookie('formComplete', 'true', [{ httpOnly: true }]).redirect('/login');
//Create and assign a jwt
const token = jwt.sign({ _id: user._id }, process.env.TOKEN_SECRET);
res.header('auth-token', token).redirect('/dashboard');
});
Sorry if this is a dumb question, i'm new to express.js, if you need any more info let me know.