Estoy tratando de hacer que mi código funcione (en realidad funciona en otra parte de mi código, no sé por qué no funciona aquí). Cualquier ayuda o consejo sería muy apreciado.
exports.crearPedido = async function crearPedido(req, res, next){ let {email, codProducto, cantidad, direccion, formaPago, estado } = req.body; let emailHeaders = req.headers.email let emailCorrecto = "" let jsonPayload = undefined let token = req.headers.authorization let userEmail //console.log(codProducto) if (email === undefined) { emailCorrecto = emailHeaders } else if(emailHeaders === undefined) { emailCorrecto = email } else if(emailHeaders === undefined && email === undefined){ token = req.headers.authorization.split(" ")[1]; jwt.verify(token, process.env.JWT_SECRET_KEY, (err, authData) => { let base64Url = token.split('.')[1]; let base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); jsonPayload = decodeURIComponent(Buffer.from(base64, 'base64').toString().split('').map(function(c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }).join('')); console.log(jsonPayload) jsonPayload = jsonPayload.split(':')[1] jsonPayload = jsonPayload.split(',')[0] jsonPayload = jsonPayload.split('"')[1] jsonPayload = jsonPayload.split('"')[0] console.log(jsonPayload) }) }else { res.status(403).json("Error de credencial de usuarios") } console.log(jsonPayload) userEmail = await usuarios.findOne({auth0Id: {$eq: jsonPayload}} ,{'_id': false})Esto es parte de mi código, no todo, pero supongo que pueden hacerse una idea de cuál es mi punto. El último console.log devuelve "indefinido" o cualquier dato con el que inicialice esa variable, pero el anterior devuelve los datos adecuados. Parece que la variable jsonPayload se cambia dentro de la función jwt.verify pero vuelve a los datos que uso para inicializarla fuera de ella.