en mi sitio web tengo un formulario de inicio de sesión donde el usuario ingresa su información y cuando envía una solicitud de publicación donde se verifica su información, y si es válida, los redirecciono al formulario de inicio de sesión donde luego ingresan el código que fue enviado a su correo electrónico. Mi pregunta es cuando la solicitud de publicación se realiza por segunda vez, ¿cómo usaría la misma URL pero no tendría que pasar por la validación nuevamente?
autenticación.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'); });Lo siento si esta es una pregunta tonta, soy nuevo en express.js, si necesita más información, hágamelo saber.
En realidad, no está realmente relacionado con express.
Está preguntando sobre el "estado" en el servidor.
Si tuviera que "refactorizar" su pregunta, podría convertirse en "Tengo este usuario que ha iniciado sesión, cómo verificarlo antes de que visite cualquier ruta"
La solución puede ser varias
isVerified = false, después de la verificación por primera vez, lo establece en verdaderosession es algo que usa para verificar el inicio de sesión del usuario o el carrito de compras...Le sugiero que profundice en las dos soluciones anteriores, por ejemplo, para la primera, ¿dónde declarar ese estado global? ¿Qué sucede si necesitamos verificar varios usuarios?