Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

146
Vistas
como comprobar si el usuario que pone un producto es el que lo modifica con el backend

mi mentor quiere que verifique si el usuario que puso una salsa en la aplicación es el mismo usuario que quiere modificar. me dice que puedo usar una condición que hice! lo hice pero nada funciona

aquí está la sección de código:

 exports.updateSauce = (req, res, next) => { //console.log (req); //recherche de la sauce dont l'id est en paramètre sauce.findOne({ _id: req.params.id }) .then((sauce) => { //teste si l'id du créateur de la sauce est le même que l'id du requeteur if (sauce.userId !== req.auth.userId) { return res.status(401).json({ error: new Error('Requête non autorisée !') }) } // ok, c'est le même console.log("OK"); // effaçons le fichier image d'origine si l'on change d'image if (req.file) { //si une image est upload const last_filename = sauce.imageUrl.split('/images/')[1]; console.log(last_filename); fs.unlink(`images/${last_filename}`, () => { console.log("FICHIER EFFACE"); const sauceObject = { ...JSON.parse(req.body.sauce), imageUrl: `${req.protocol}://${req.get('host')}/images/${req.file.filename}` }; console.log(sauceObject); console.log(req.params.id); sauce.updateOne({ _id: req.params.id }, { ...sauceObject, _id: req.params.id }) .then(() => res.status(200).json({ message: 'Sauce modifiée !' })) .catch(error => res.status(400).json({ error })); }); } else { console.log("SANS FICHIER MODIFIE"); console.log(req.body); const sauceObject = { ...req.body }; console.log(req.params.id); sauce.updateOne({ _id: req.params.id }, { ...sauceObject, _id: req.params.id }) .then(() => { console.log("updated"); return res.status(200).json({ message: 'Sauce modifiée !' }) } ) .catch(error => res.status(400).json({ error })); } } );
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Esto se ve bien, pero podría no funcionar si uno es un ID de objeto y el otro es una cadena. ¿Puede verificar cuál podría ser una cadena en la sección a continuación?

 if (sauce.userId !== mongoose.Types.ObjectId(req.auth.userId)) { return res.status(401).json({ error: new Error('Requête non autorisée !') })

¿Puedes registrar estos dos sauce.userId y req.auth.userId y compartir el resultado?

about 4 years ago · Juan Pablo Isaza Denunciar

0

Luego, debe convertir objectId en cadena antes de comparar:

 if (sauce.userId.toString() !== req.auth.userId) { //If req.auth.userId is string as you said return res.status(401).json({ error: new Error('Requête non autorisée !') }); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda