Este es el código del lado del cliente REACT js en el error de la consola es este 1. No se pudo cargar el recurso: el servidor respondió con un estado de 401 (no autorizado) 2. Error de tipo no detectado: inventarios.mapa no es una función
useEffect(() => { setDataLoading(true); const url = `http://localhost:5000/inventoryByEmail?email=${user.email}`; fetch(url, { headers: { authorization: `Bearer ${localStorage.getItem("access-token")}`, }, }) .then((res) => res.json()) .then((data) => { setInventories(data); setDataLoading(false); }); }, [user]);Este es el código Nodejs del sitio del servidor
function verifyJWT(req, res, next) { const authHeader = req.header.authorization; if (!authHeader) { return res.status(401).send({ message: "unauthorized access" }); } const token = authHeader.split(" ")[1]; jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, decoded) => { if (err) { return res.status(403).send({ message: "Forbidden access" }); } req.decoded = decoded; next(); }); }y esta es la ruta api
app.get("/inventoryByEmail", verifyJWT, async (req, res) => { const decodedEmail = req.decoded.email; const email = req.query.email; if (email === decodedEmail) { const query = { email: email }; const cursor = inventoryCollection.find(query); const result = await cursor.toArray(); res.send(result); } else { res.status(403).send({ message: "forbidden access" }); } });¿Cómo solucionar este problema? ¡Muchas gracias por tu tiempo!
en su función verifiqueJWT es: req.headers.authorization; o si desea obtener el token: req.headers.authorization.split(' ')[1];