Hace como un año que encontré tu canal, siendo sincero no le presté mucha atención porqué el desarrollo web no me interesaba demasiado, estoy estudiando ingienería en sistemas y estaba mucho más enfocado a escritorio, poco a poco ví tus vídeos y cada vez me encantaba más el desarrollo web. Hace unos meses tuve que abandonar mi ingienería, pero gracias a tí y tus vídeos, hoy fué mi primer día como Desarrollador Node en una gran empresa y me haz abierto la posibilidad de continuar mis estudios. Gracias, eres un verdadero crack y algún día espero poder a ser tan bueno como tú!
Me encanto sin duda me fue muy útil ya que pase un buen tiempo buscando entender para poder aplicar jwt con nodejs-express en sesiones, excelente vídeo!!! Como siempre un grande Fazt.
Excelente tutorial clarisimo y suficientemente breve para comprender con simplicidad, muchisimas gracias Fazt, me quedare esperando un ejemplo mas avanzado y más segura.
Excelente, justo lo que necesitamos los programadores, preciso y conciso. Sólo le habría agregado la casuística de que si el token es modificado intencionalmente (modificando un caracter por ejemplo, o usando un token expirado), atrapar ese error y manejarlo, ya que en ese caso el verify arroja una excepción. ¿Lo habrías manejado con un try catch o de otra forma?
Havia visto muitos exemplos com o Bearer, onde o token era colocado no "Autorization", e depois era necessário fazer um split() para separados e valida-lo. Poderia explicar a diferença entre o Bearer e esse método que você usou? Abraços do Brasil!
Hola Fazt, primero felicidades por tus canales, siempre aprendo algo nuevo con tus videos, incluso si es un tema que conozco. Seria interesante complementar el tema con un refresh token o posiblemente para un siguiente video con passport! gracias!
¡Buenisimo video! Siempre más útil lo que propones! Pero... tengo unas "dudas" sobre el "mundo backend"... 1) Los "Providers" (por lo menos lo más famosos...) siguen ofreciendo hosting que ofrece solo PHP y no te permite de utilizar Node.js; algunos te ofrecen "servidores virtuales", bastante caros, para que se pueda utilizar node. Sabes si algo está cambiando o la tendencia sigue siendo la misma de siempre? 2) Cuanto puede ser "rentable" en en final de 2019 ( sobre todo a nivel de tiempo y de "servicios" reales que puede ofrecer...) crear un backend en PHP? Y que se puede utilizar (es decir, con o sin framework, ect...)? 3) Hablamos de webserver. Si quiero crear un webserver "en casa" para ofrecer servicios de Node ("en casa" sería en una servidor interno de una empresa...), cual distro sería mejor, cual servidor (Apache, Nginx, ...) y como se podrían configurar los puertos para que funcione el backend? Gracias!
Excelente aporte, eres un genio hermano. Ojala puedas abordar a fondo el tema de Angular Routing. Estoy desarrollando una app con menu lateral colapsable y este es tratado como un componente en el router, pero cada una de las llamadas al menu son childs!! Es algo a lo que no había llegado.
Hey man. Thank you so much. I really appreciate all the effort that you put into these videos. You have such a great channel, keep it up. I want to ask you for something, could you do a video about authentication and authorization using GraphQl, NodeJs and JWT? See ya.
Hola como es el manejo de rutas si requiero un token pero q expire la sesion. Por ejemplo las apps moviles de bancos, cada cierto tiempo se expira la session y te pregunta si quieres permanecer _conectado la sesión_ . Esa parte como se manejaria en la parte de nodejs. Gracias. pd: Vi unos ejemplos que envian 2 tokens *1ero token* : el verdadero (con expiracion ) *2do token* : otro para refrescar el token( esto con expiracion pues nose).
al realizar pruebas con email o contraseñas incorrectos, en insomia te muestra el texto asignado ' email invalido' o 'contraseña invalida' pero cuando lo pruebo me muestra Unauthorized, por que?
excelente video. entendi muchas cosas que no habia entendido antes. Ya subiste el ejemplo de produccion? Me interesa saber como se arma un back de produccion real. Gracias.
me sale este error por consola TypeError: app.use() requires a middleware function y este es el codigo que tengo en la app.js const express = require("express"); const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(require("./controllers/authController")) module.exports = app; cuando comento la linea donde esta el authController el error desaparece pero no puedo hacer nada mas
Hola, de antemano gracias, gracias a vos , ya tengo mi api listo para subir a producción, estoy en la parte del jwt siguiendo el video bien, pero al momento de colocar el mildware en la ruta me genera un error: Route.post() requires a callback function but got a [object Object] y allí quedo, me podrías guiar por favor
Fazt te quiero agradecer porque con los ejemplos que has creado en nodejs, eh aprendido más que un curso de nodejs, enserio me pase a ver un curso en udemy que me regalaron y primero me aburrí y segundo casi todo el curso me la pase saltando porque decia: "ah ok fazt uso esto y aquello" o "nah prefiero la forma qeu mostró fazt"... que libros recomiendas? aprendiste con ellos?
Apenas vi este video fui a ver cuanto duraba y vi que era casinuna hora entonces me dije es un curso completo de node con una extensión para aterrizar el mars en Marte ajajajjajajaj mamita que velocidad de codeo 🤣
Hola fazt tengo un problema al ya poner en práctica en un proyecto de prueba los tokens y es que el token lo logro generar y también verificar, pero a la hora de usar la web desde el navegador el token no de almacena en el cliente y entonces no me deja acceder a las rutas protrgidas. Que crees que lo ocasione ?
Refused to load the font 'localhost:5000/icon/iconfont.woff?t=1571728594832' because it violates the following Content Security Policy directive: "default-src 'none'". Note that 'font-src' was not explicitly set, so 'default-src' is used as a fallback. no me explico que le pasa
creo que esto es para añadir seguridad a las sesiones, tampoco lo twngo del todo claro pero he trabajado en proyectos ya en ejecución y se usaba tanto la encryptacion de contraseñas como los tokens
para mantener una "sesión" activa, cada petición del cliente debe incluir su token, de otra manera el servidor no sabe si el cliente está autenticado o no. Otra alternativa a los tokens es usar sesiones con Cookies.
Buenas cuando pensabas hacer un video con passport.js y algunas prácticas de seguridad? puede ser que passport esté obsoleto, porque eso vi por ahi. Gracias
estaria genial un panel de administrador para administrar la aplicacion completa que usa los usuarios normales en el frontend, con tener la tabla de usuarios bastaria para tener un ejemplo. aprovecho para preguntar , no es viable crear toda la interfaz desde cero, alguien conoce algo o de donde puedo tomar componentes como el sidebar y eso, para ponerlos en mi app en react? ya sea usando reactstrap o react-bootstrap. conoces alguna @fazt ?
Hola Fazt, excelente video!! Como siempre!. Una consulta cuando envío un post con un cliente me da el error: (node:15648) UnhandledPromiseRejectionWarning: ReferenceError: User is not defined at ......FaztCode\json-web-token\src\controllers\authController.js:16:18 . Puede ser que Express no maneje excepciones y deba meterle un try catch?. Muchas gracias!!
bueno primero puedes comprobar que se este importando correctamente el modelo y los demás requerimientos, y tambien que cuando uses el metodo del esquema llames a la instancia creada, por ejemplo: const user = new User({username, email,password}); user.password = user.encryptPassword(user.password); Espero te sea de ayuda (>->).
Me gustaría ver un ejemplo de producción como lo mencionaste al final del video, aún soy estudiante y me interesó mucho esto de los jwt, saludos crack!
5 лет назад
Hola fazt me encanta tu video era algo que esperaba mucho, mira una pregunta tu página web usas algún framework o cms o como cargas el contenido dinámico o lo haces de forma manual me gustaría saber eso, yo he realizado webs esraticas pero no me gustaría usar wordpress. Muchas gracias
Hola Lopuma, si te refieres al Id que va almacenado en el token, este lo puedes obtener cuando añades un nuevo usuario en tu base de datos de MySQL. Es decir ese id viene de MySQL en tu caso
creo que son distintos, bueno no se, en el video donde hizo la api con mongo db inicio de sesion y eso, uso passport, y hasta donde entendi se usaba para encriptar contraseñas. el token es para autenticar una sesion y mantenerla abierta o cerrarla, ademas de añadir seguridad, evitar hackeos supongo. ahorita ando viendo esta serie de videos porque necesito crear un login, yo soy front end pero quiero entender todo el proceso desde el back, y por lo que he visto voy a requerir tanto la encryptacion como el token (en un proyecto anterior en el que trabaje se usaban tokens y las contraseñas estaban encryptadas)
Y aprovechando, alguien podría ayudarme, es que tengo una API con ts y pues al ver este vídeo mi inspire y decidí ponerle un login. El problema que tengo es que el bcryptjs,no puedo poner el userSchema.methods.encryptPassword en el archivo de user.js, me dice el encryptPassword no es un tipo document, espero puedan ayudarme. Y Fazt asombrosos vídeos, de nuevo, me fascinan
PUEDES CREARME UN BOT JWT PARA LA PLATAFORMA AIRTM.COM QUE ME AYUDE A TOMAR OPERACIONES DE FONDEOS Y RETIROS MAS RAPIDOS QUE MIS COMPAÑEROS PAGO 200$ POR EL BOT
Qué tal, agradezco su ayuda en el siguiente error que me muestra al momento de ingresar a la ruta "/me" desde insomnia, le envío el token que me genera, pero me da este error node_modules\express\lib esponse.js:1150 : JSON.stringify(value); "TypeError: Converting circular structure to JSON" Cuando le quito el token y hago la petición GET a la aplicación, sí me muestra el error que no tiene token, el código es el siguiente: ***** Archivo VerifyToken.js ***** const jwt = require('jsonwebtoken'); const config = require('../config'); function verifyToken (req, res, next) { const token = await req.headers['x-access-token']; if(!token){ return res.status(401).json({ auth: false, message: 'No token provided' }); } const decoded = jwt.verify(token, config.secret); next(); } module.exports = verifyToken; ***** Ruta /me ***** router.get('/me', verifyToken, async (req, res, next) => { const user = User.findById(req.userId, {password: 0}); if(!user){ return res.status(404).send('No user found'); }
res.send(user); }); Agradezo su ayuda, llevo varias horas tratando de solucionar el error, pero aún no lo logro, saludos!
Me pondré a ver el video MI DIOS
Jajaja qué gay
Hace como un año que encontré tu canal, siendo sincero no le presté mucha atención porqué el desarrollo web no me interesaba demasiado, estoy estudiando ingienería en sistemas y estaba mucho más enfocado a escritorio, poco a poco ví tus vídeos y cada vez me encantaba más el desarrollo web.
Hace unos meses tuve que abandonar mi ingienería, pero gracias a tí y tus vídeos, hoy fué mi primer día como Desarrollador Node en una gran empresa y me haz abierto la posibilidad de continuar mis estudios.
Gracias, eres un verdadero crack y algún día espero poder a ser tan bueno como tú!
Excelente, mis inicios con JWT, espero con ansias el vídeo 57:13 para uso en producción.
Despues de un año vengo a agradecer, me sirvió resto tu ejemplo
Fazt eres un genio, muy didáctico, y eficiente gracias totales.
Me encanto sin duda me fue muy útil ya que pase un buen tiempo buscando entender para poder aplicar jwt con nodejs-express en sesiones, excelente vídeo!!! Como siempre un grande Fazt.
Tus fans necesitamos ver mas videos de NodeJS con handlebars, hay muchas lagunas en handlebars, me gustaría aclarar unas cuantas dudas con usted.
te demoras 10 minutos en leer la documentacion aslkdj
Excelente tutorial clarisimo y suficientemente breve para comprender con simplicidad, muchisimas gracias Fazt, me quedare esperando un ejemplo mas avanzado y más segura.
Crack! Repasar los conocimientos de JWT siempre es buenooo.
Mi hermano mil gracias por transmitir tu conocimiento, tus videos son muy muy buenos, excelente explicación
Un capo como siempre.. Mas sencillo explicado no se puede... Esperando ya el uso de passport con node! Saludos crack
Excelente Fazt. Muchas gracias
mucho mejor explicado que en el curso de jwt de platzi :D
felicitasiones amigo muy entretenidos amigo no tiene desperdicios sus videos
Ufff buen video, puedes hacer un vídeo de un signup y un login con jwt y El mean stack luego? Muchas gracias!!
Eres el Rey, gracias por tus videos a ver si sales en alguno para que te conozcamos.
Videos que valen oro!!
Waoww eres lo maximo!!!
Muy bien explicado, gracias Faz Code
Excelente, justo lo que necesitamos los programadores, preciso y conciso. Sólo le habría agregado la casuística de que si el token es modificado intencionalmente (modificando un caracter por ejemplo, o usando un token expirado), atrapar ese error y manejarlo, ya que en ese caso el verify arroja una excepción. ¿Lo habrías manejado con un try catch o de otra forma?
El mejor explicando, eres un duro ! Sigue asii :D
muy buen vídeo, felicitaciones ayudas un full a desarrolladores que estamos empezando 7w7
Havia visto muitos exemplos com o Bearer, onde o token era colocado no "Autorization", e depois era necessário fazer um split() para separados e valida-lo. Poderia explicar a diferença entre o Bearer e esse método que você usou?
Abraços do Brasil!
Gracias Fazt, muy buen cotenido como siempre
Justo lo que queria async / await buen ejemplo
Hola Fazt, primero felicidades por tus canales, siempre aprendo algo nuevo con tus videos, incluso si es un tema que conozco. Seria interesante complementar el tema con un refresh token o posiblemente para un siguiente video con passport! gracias!
¡Buenisimo video! Siempre más útil lo que propones!
Pero... tengo unas "dudas" sobre el "mundo backend"...
1) Los "Providers" (por lo menos lo más famosos...) siguen ofreciendo hosting que ofrece solo PHP y no te permite de utilizar Node.js; algunos te ofrecen "servidores virtuales", bastante caros, para que se pueda utilizar node. Sabes si algo está cambiando o la tendencia sigue siendo la misma de siempre?
2) Cuanto puede ser "rentable" en en final de 2019 ( sobre todo a nivel de tiempo y de "servicios" reales que puede ofrecer...) crear un backend en PHP? Y que se puede utilizar (es decir, con o sin framework, ect...)?
3) Hablamos de webserver. Si quiero crear un webserver "en casa" para ofrecer servicios de Node ("en casa" sería en una servidor interno de una empresa...), cual distro sería mejor, cual servidor (Apache, Nginx, ...) y como se podrían configurar los puertos para que funcione el backend?
Gracias!
me encanta el tema de halt and catch fire
Excelente aporte, eres un genio hermano. Ojala puedas abordar a fondo el tema de Angular Routing. Estoy desarrollando una app con menu lateral colapsable y este es tratado como un componente en el router, pero cada una de las llamadas al menu son childs!! Es algo a lo que no había llegado.
Muchas gracias por tus contenidos.
Gracias a ti por el apoyo :)
Excelente explicación, como siempre! Muchas gracias!
Hey man. Thank you so much. I really appreciate all the effort that you put into these videos. You have such a great channel, keep it up.
I want to ask you for something, could you do a video about authentication and authorization using GraphQl, NodeJs and JWT? See ya.
y cuando expira el token que pasa, como refrescar el token ? fuera sido genial si fueses agregado eso al video
@zasara XD Como hago para que cada vez que ingrese al sistema, me remueva el token anterior?
cuando expira el token pues es como decir que el token no es valido, entonces no tienes autorización
Hola como es el manejo de rutas si requiero un token pero q expire la sesion.
Por ejemplo las apps moviles de bancos, cada cierto tiempo se expira la session y te pregunta si quieres permanecer _conectado la sesión_ .
Esa parte como se manejaria en la parte de nodejs.
Gracias.
pd: Vi unos ejemplos que envian 2 tokens
*1ero token* : el verdadero (con expiracion )
*2do token* : otro para refrescar el token( esto con expiracion pues nose).
Te amo ♥️
Justo esto está a investigando hace unas semanas XD
Estaría muy bien si ahora explicaras como consumir esta API desde una web, sin utilizar Vue, Angular o ReacJs. Un saludo.
Busca como manejar rutas desde expréss
¿Cómo puedo crear un modelo y pasarle como variable el nombre de la colección?
Gracias, profe.
Excelente video bro
muy bueno, muchas gracias, y a la espera de passport
Genial video 💜
Alguien sabe cómo hacer que el token se incorpore a los headers de los usuarios? Porque en el ejercicio se hace copiando y pegando en insomnia...
Que sucede cuando el token ya expiró? Cómo se maneja en el cliente??
al realizar pruebas con email o contraseñas incorrectos, en insomia te muestra el texto asignado ' email invalido' o 'contraseña invalida' pero cuando lo pruebo me muestra Unauthorized, por que?
excelente video. entendi muchas cosas que no habia entendido antes. Ya subiste el ejemplo de produccion? Me interesa saber como se arma un back de produccion real. Gracias.
gracias fazt lo espere hace meses :D
me sale este error por consola
TypeError: app.use() requires a middleware function
y este es el codigo que tengo en la app.js
const express = require("express");
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(require("./controllers/authController"))
module.exports = app;
cuando comento la linea donde esta el authController el error desaparece pero no puedo hacer nada mas
Fazt me gustaría que hicieras un boilerplate y usarlo para que puedas hacer apps mas completas
ERES EL MEJOR, GRACIAS!
Y como puedo mandar los tokens a traves del header sin usar Insomnia?
Voto por el ejemplo de producción me interesa analizar cómo solucionas la verificación de correo y recuperación de contraseña, pd. hazme un hijo.
Muy buen tuto! Gracias
Me queda la duda de como seria en produccion, se usa de la misma forma jwt? soy totalmente inexperto en deploy y quisiera aprender! gracias fazt!
Hola, de antemano gracias, gracias a vos , ya tengo mi api listo para subir a producción, estoy en la parte del jwt siguiendo el video bien, pero al momento de colocar el mildware en la ruta me genera un error: Route.post() requires a callback function but got a [object Object] y allí quedo, me podrías guiar por favor
funciona igual para emplearlo en sql?
EXCELENTE!!
Gracias
necesito ayuda en el servidor web no me convalida el token
Fazt te quiero agradecer porque con los ejemplos que has creado en nodejs, eh aprendido más que un curso de nodejs, enserio me pase a ver un curso en udemy que me regalaron y primero me aburrí y segundo casi todo el curso me la pase saltando porque decia: "ah ok fazt uso esto y aquello" o "nah prefiero la forma qeu mostró fazt"... que libros recomiendas? aprendiste con ellos?
Eres un crack ❤️
Apenas vi este video fui a ver cuanto duraba y vi que era casinuna hora entonces me dije es un curso completo de node con una extensión para aterrizar el mars en Marte ajajajjajajaj mamita que velocidad de codeo 🤣
Buenas, buen video, podrias hacer uno sobre refresh token
excelente vídeo, eres un crack
Genial video, ¿Para cuando una segunda parte desde un front con angular o react?
Hola fazt tengo un problema al ya poner en práctica en un proyecto de prueba los tokens y es que el token lo logro generar y también verificar, pero a la hora de usar la web desde el navegador el token no de almacena en el cliente y entonces no me deja acceder a las rutas protrgidas. Que crees que lo ocasione ?
No se me genera el header 'authorization' ni 'x-access-token' ni nada, no puedo avanzar
gracias wey.. hubiera valido la pena hacer esto con React.. pudiera sera para ser un segundo video voy a haber si lo ago yo
Refused to load the font 'localhost:5000/icon/iconfont.woff?t=1571728594832' because it violates the following Content Security Policy directive: "default-src 'none'". Note that 'font-src' was not explicitly set, so 'default-src' is used as a fallback.
no me explico que le pasa
¿Para que tener un token si ya el usuario tienen un password, aclaerenme eso por favor? gracias de antemano
creo que esto es para añadir seguridad a las sesiones, tampoco lo twngo del todo claro pero he trabajado en proyectos ya en ejecución y se usaba tanto la encryptacion de contraseñas como los tokens
para mantener una "sesión" activa, cada petición del cliente debe incluir su token, de otra manera el servidor no sabe si el cliente está autenticado o no. Otra alternativa a los tokens es usar sesiones con Cookies.
Buenas cuando pensabas hacer un video con passport.js y algunas prácticas de seguridad? puede ser que passport esté obsoleto, porque eso vi por ahi.
Gracias
¿Qué es más seguro, JsonWebToken o Passport?
funciona con mysql?
estaria genial un panel de administrador para administrar la aplicacion completa que usa los usuarios normales en el frontend, con tener la tabla de usuarios bastaria para tener un ejemplo.
aprovecho para preguntar , no es viable crear toda la interfaz desde cero, alguien conoce algo o de donde puedo tomar componentes como el sidebar y eso, para ponerlos en mi app en react?
ya sea usando reactstrap o react-bootstrap. conoces alguna @fazt ?
Para eso esta Django
Te amo.
bro, lo siento, no entendí la parte, por que solo cifraste el user._id?
Excelente
Hola Fazt, excelente video!! Como siempre!. Una consulta cuando envío un post con un cliente me da el error: (node:15648) UnhandledPromiseRejectionWarning: ReferenceError: User is not defined
at ......FaztCode\json-web-token\src\controllers\authController.js:16:18 . Puede ser que Express no maneje excepciones y deba meterle un try catch?. Muchas gracias!!
bueno primero puedes comprobar que se este importando correctamente el modelo y los demás requerimientos, y tambien que cuando uses el metodo del esquema llames a la instancia creada, por ejemplo:
const user = new User({username, email,password});
user.password = user.encryptPassword(user.password);
Espero te sea de ayuda (>->).
Me gustaría ver un ejemplo de producción como lo mencionaste al final del video, aún soy estudiante y me interesó mucho esto de los jwt, saludos crack!
Hola fazt me encanta tu video era algo que esperaba mucho, mira una pregunta tu página web usas algún framework o cms o como cargas el contenido dinámico o lo haces de forma manual me gustaría saber eso, yo he realizado webs esraticas pero no me gustaría usar wordpress. Muchas gracias
Muchas gracias
Hola Fazt, como puedo crear ese id, se hace en MySQL o en JavaScript??
Hola Lopuma, si te refieres al Id que va almacenado en el token, este lo puedes obtener cuando añades un nuevo usuario en tu base de datos de MySQL. Es decir ese id viene de MySQL en tu caso
Gracias por este video, Fazt.
Por cierto, Insomnia o Postman?
Excelente tutorial, lo vi todo, muchas gracias....una pregunta, Fazt, consideras que JWT es mejor que Passport? Gracias.
creo que son distintos, bueno no se, en el video donde hizo la api con mongo db inicio de sesion y eso, uso passport, y hasta donde entendi se usaba para encriptar contraseñas. el token es para autenticar una sesion y mantenerla abierta o cerrarla, ademas de añadir seguridad, evitar hackeos supongo. ahorita ando viendo esta serie de videos porque necesito crear un login, yo soy front end pero quiero entender todo el proceso desde el back, y por lo que he visto voy a requerir tanto la encryptacion como el token (en un proyecto anterior en el que trabaje se usaban tokens y las contraseñas estaban encryptadas)
22:00
41:03
No entiendo, cual es la diferencia con el otro canal? iluminenme.
Like y me suscribo
Y aprovechando, alguien podría ayudarme, es que tengo una API con ts y pues al ver este vídeo mi inspire y decidí ponerle un login. El problema que tengo es que el bcryptjs,no puedo poner el userSchema.methods.encryptPassword en el archivo de user.js, me dice el encryptPassword no es un tipo document, espero puedan ayudarme.
Y Fazt asombrosos vídeos, de nuevo, me fascinan
PUEDES CREARME UN BOT JWT PARA LA PLATAFORMA AIRTM.COM QUE ME AYUDE A TOMAR OPERACIONES DE FONDEOS Y RETIROS MAS RAPIDOS QUE MIS COMPAÑEROS PAGO 200$ POR EL BOT
😂
Qué tal, agradezco su ayuda en el siguiente error que me muestra al momento de ingresar a la ruta "/me" desde insomnia, le envío el token que me genera, pero me da este error
node_modules\express\lib
esponse.js:1150
: JSON.stringify(value);
"TypeError: Converting circular structure to JSON"
Cuando le quito el token y hago la petición GET a la aplicación, sí me muestra el error que no tiene token, el código es el siguiente:
***** Archivo VerifyToken.js *****
const jwt = require('jsonwebtoken');
const config = require('../config');
function verifyToken (req, res, next) {
const token = await req.headers['x-access-token'];
if(!token){
return res.status(401).json({
auth: false,
message: 'No token provided'
});
}
const decoded = jwt.verify(token, config.secret);
next();
}
module.exports = verifyToken;
***** Ruta /me *****
router.get('/me', verifyToken, async (req, res, next) => {
const user = User.findById(req.userId, {password: 0});
if(!user){
return res.status(404).send('No user found');
}
res.send(user);
});
Agradezo su ayuda, llevo varias horas tratando de solucionar el error, pero aún no lo logro, saludos!