Tengo este fragmento de código que funciona bien en cartero cuando configuro el encabezado en el token generado a partir del token de acceso. pero cuando estoy usando el mismo código en el navegador cuando inicio sesión, obtengo el acceso de autorización, pero en el momento en que ingreso manualmente el nuevo enrutador, aparece un error no autorizado.
const verifyToken = (req, res, next) => { const authHeader = req.headers["authorization"]; if (authHeader) { const token = authHeader.split(" ")[1]; jwt.verify(token, process.env.jwtToken, (err, user) => { if (err) { res.status(500).json("Invalid Token"); } else { req.user = user; next(); } }); } else { res.status(500).json("You are not authenticated"); }};
const verifyAndAuth = (req, res, next) => { verifyToken(req, res, () => { if (req.params.id === req.user.id) { next(); } else { res.status(500).json("You are not verified"); } });};
el middleware verificarAndAuth se agrega a cada ruta, por ejemplo:
router.get("/", admin, async (req, res) => { try { const noteData = await users.find(); res.status(200).json(noteData) } catch (err) { res.status(500).json(err) }});