JSON Web Tokens, Introducción Práctica con Nodejs, Mongodb y async/await

Поделиться
HTML-код
  • Опубликовано: 11 дек 2024

Комментарии • 114

  • @renzomr17
    @renzomr17 5 лет назад +25

    Me pondré a ver el video MI DIOS

  • @jesusmoralesfernandez3123
    @jesusmoralesfernandez3123 5 лет назад +3

    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ú!

  • @mikshem1056
    @mikshem1056 5 лет назад +8

    Excelente, mis inicios con JWT, espero con ansias el vídeo 57:13 para uso en producción.

  • @jeancarlosortiz3518
    @jeancarlosortiz3518 3 года назад

    Despues de un año vengo a agradecer, me sirvió resto tu ejemplo

  • @jumarq1
    @jumarq1 5 лет назад +1

    Fazt eres un genio, muy didáctico, y eficiente gracias totales.

  • @agustinlipchak1480
    @agustinlipchak1480 4 года назад

    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.

  • @OsvGames
    @OsvGames 5 лет назад +2

    Tus fans necesitamos ver mas videos de NodeJS con handlebars, hay muchas lagunas en handlebars, me gustaría aclarar unas cuantas dudas con usted.

  • @Cesar-ws9gv
    @Cesar-ws9gv 5 лет назад

    Excelente tutorial clarisimo y suficientemente breve para comprender con simplicidad, muchisimas gracias Fazt, me quedare esperando un ejemplo mas avanzado y más segura.

  • @romarioyabar4430
    @romarioyabar4430 5 лет назад +2

    Crack! Repasar los conocimientos de JWT siempre es buenooo.

  • @ivanhernandezcoral2338
    @ivanhernandezcoral2338 3 года назад

    Mi hermano mil gracias por transmitir tu conocimiento, tus videos son muy muy buenos, excelente explicación

  • @juliomontilla100
    @juliomontilla100 5 лет назад

    Un capo como siempre.. Mas sencillo explicado no se puede... Esperando ya el uso de passport con node! Saludos crack

  • @grbsql
    @grbsql 3 года назад

    Excelente Fazt. Muchas gracias

  • @edersorto7346
    @edersorto7346 3 года назад

    mucho mejor explicado que en el curso de jwt de platzi :D

  • @fracielarevalo7401
    @fracielarevalo7401 5 лет назад +2

    felicitasiones amigo muy entretenidos amigo no tiene desperdicios sus videos

  • @carlosaracena789
    @carlosaracena789 5 лет назад +11

    Ufff buen video, puedes hacer un vídeo de un signup y un login con jwt y El mean stack luego? Muchas gracias!!

  • @rachidoulgour4973
    @rachidoulgour4973 5 лет назад

    Eres el Rey, gracias por tus videos a ver si sales en alguno para que te conozcamos.

  • @arquip
    @arquip 3 года назад

    Videos que valen oro!!

  • @Gio-nk9pf
    @Gio-nk9pf 4 года назад +3

    Waoww eres lo maximo!!!

  • @ronnymt1624
    @ronnymt1624 3 года назад

    Muy bien explicado, gracias Faz Code

  • @sergiovalp
    @sergiovalp 3 года назад

    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?

  • @danielsuarez6648
    @danielsuarez6648 4 года назад

    El mejor explicando, eres un duro ! Sigue asii :D

  • @armandotelmocajilemacuji3350
    @armandotelmocajilemacuji3350 4 года назад

    muy buen vídeo, felicitaciones ayudas un full a desarrolladores que estamos empezando 7w7

  • @jucelinofilho9404
    @jucelinofilho9404 5 лет назад +3

    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!

  • @alexpineda1720
    @alexpineda1720 4 года назад

    Gracias Fazt, muy buen cotenido como siempre

  •  5 лет назад

    Justo lo que queria async / await buen ejemplo

  • @Daniel-gd1xo
    @Daniel-gd1xo 4 года назад

    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!

  • @PierPaoloZini
    @PierPaoloZini 5 лет назад +1

    ¡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!

  • @LG-wb1jf
    @LG-wb1jf 3 года назад

    me encanta el tema de halt and catch fire

  • @angelhidalgo4747
    @angelhidalgo4747 5 лет назад

    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.

  • @oliveira1820
    @oliveira1820 9 месяцев назад

    Muchas gracias por tus contenidos.

    • @FaztCode
      @FaztCode  9 месяцев назад

      Gracias a ti por el apoyo :)

  • @agustinlavalla8892
    @agustinlavalla8892 4 года назад

    Excelente explicación, como siempre! Muchas gracias!

  • @eiderarango5863
    @eiderarango5863 5 лет назад +10

    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.

  • @misterjj96
    @misterjj96 5 лет назад +10

    y cuando expira el token que pasa, como refrescar el token ? fuera sido genial si fueses agregado eso al video

    • @juliorangel2798
      @juliorangel2798 4 года назад

      @zasara XD Como hago para que cada vez que ingrese al sistema, me remueva el token anterior?

    • @MsSoldadoRaso
      @MsSoldadoRaso 3 года назад

      cuando expira el token pues es como decir que el token no es valido, entonces no tienes autorización

  • @rogercolque
    @rogercolque 4 года назад +1

    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).

  • @issaccastro6506
    @issaccastro6506 5 лет назад

    Te amo ♥️
    Justo esto está a investigando hace unas semanas XD

  • @cdrman
    @cdrman 5 лет назад +1

    Estaría muy bien si ahora explicaras como consumir esta API desde una web, sin utilizar Vue, Angular o ReacJs. Un saludo.

    • @eduardokanp
      @eduardokanp 5 лет назад

      Busca como manejar rutas desde expréss

  • @martinbrisset
    @martinbrisset 5 лет назад +1

    ¿Cómo puedo crear un modelo y pasarle como variable el nombre de la colección?

  • @fernandomontesnavarrete8826
    @fernandomontesnavarrete8826 4 года назад

    Gracias, profe.

  • @maikelberbi5210
    @maikelberbi5210 Год назад

    Excelente video bro

  • @FernandoLopez-vc2ld
    @FernandoLopez-vc2ld 5 лет назад

    muy bueno, muchas gracias, y a la espera de passport

  • @nevertastesogood
    @nevertastesogood 3 года назад

    Genial video 💜

  • @gustavoghp2262
    @gustavoghp2262 4 года назад

    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...

  • @estebanbeltran5970
    @estebanbeltran5970 4 года назад

    Que sucede cuando el token ya expiró? Cómo se maneja en el cliente??

  • @anthonymlop
    @anthonymlop Год назад

    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?

  • @Reysaturn723
    @Reysaturn723 4 года назад

    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.

  • @lindltaylor4093
    @lindltaylor4093 5 лет назад

    gracias fazt lo espere hace meses :D

  • @poldiaz
    @poldiaz 2 года назад

    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

  • @juancamiloq1
    @juancamiloq1 5 лет назад

    Fazt me gustaría que hicieras un boilerplate y usarlo para que puedas hacer apps mas completas

  • @JoseDanielPossoGarcia
    @JoseDanielPossoGarcia 4 года назад

    ERES EL MEJOR, GRACIAS!

  • @ipkickss
    @ipkickss 3 года назад

    Y como puedo mandar los tokens a traves del header sin usar Insomnia?

  • @nosoyalberto9340
    @nosoyalberto9340 4 года назад

    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.

  • @irvingdelgado6426
    @irvingdelgado6426 4 года назад

    Muy buen tuto! Gracias

  • @SergioPosse
    @SergioPosse 4 года назад

    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!

  • @dagovindany
    @dagovindany 4 года назад

    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

  • @angeltoo8786
    @angeltoo8786 Год назад

    funciona igual para emplearlo en sql?

  • @marcosMartinez-wm7bd
    @marcosMartinez-wm7bd 3 года назад

    EXCELENTE!!

  • @estebanoctaviopavezllanca2385
    @estebanoctaviopavezllanca2385 3 года назад +1

    Gracias

  • @josejrreyes1567
    @josejrreyes1567 4 года назад

    necesito ayuda en el servidor web no me convalida el token

  • @yesidev4131
    @yesidev4131 4 года назад

    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?

  • @eriksamuel2945
    @eriksamuel2945 4 года назад

    Eres un crack ❤️

  • @euforia_
    @euforia_ 4 года назад

    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 🤣

  • @ferdysduran9173
    @ferdysduran9173 4 года назад

    Buenas, buen video, podrias hacer uno sobre refresh token

  • @kenethsandoval2641
    @kenethsandoval2641 5 лет назад

    excelente vídeo, eres un crack

  • @luisdavidrivero1776
    @luisdavidrivero1776 4 года назад

    Genial video, ¿Para cuando una segunda parte desde un front con angular o react?

  • @silentsnake27
    @silentsnake27 5 лет назад

    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 ?

  • @duvaraclaudio2727
    @duvaraclaudio2727 Год назад

    No se me genera el header 'authorization' ni 'x-access-token' ni nada, no puedo avanzar

  • @surflaweb
    @surflaweb 5 лет назад

    gracias wey.. hubiera valido la pena hacer esto con React.. pudiera sera para ser un segundo video voy a haber si lo ago yo

  • @martincarp4671
    @martincarp4671 4 года назад

    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

  • @PraexorVS
    @PraexorVS 4 года назад +1

    ¿Para que tener un token si ya el usuario tienen un password, aclaerenme eso por favor? gracias de antemano

    • @Biocrista
      @Biocrista 4 года назад +1

      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

    • @irvingdelgado6426
      @irvingdelgado6426 4 года назад

      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.

  • @maximilianominetto524
    @maximilianominetto524 5 лет назад

    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

  • @NonsenseIsOver
    @NonsenseIsOver 4 года назад

    ¿Qué es más seguro, JsonWebToken o Passport?

  • @erickmolina1190
    @erickmolina1190 4 года назад

    funciona con mysql?

  • @mclaren541
    @mclaren541 5 лет назад +1

    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 ?

    • @gelintonx
      @gelintonx 4 года назад

      Para eso esta Django

  • @christianm888
    @christianm888 4 года назад

    Te amo.

  • @zeroes5237
    @zeroes5237 3 года назад

    bro, lo siento, no entendí la parte, por que solo cifraste el user._id?

  • @gmayas
    @gmayas 4 года назад

    Excelente

  • @OlivosRugby
    @OlivosRugby 4 года назад +1

    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!!

    • @brandovidaldeza6840
      @brandovidaldeza6840 4 года назад +1

      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 (>->).

  • @edsonme9
    @edsonme9 5 лет назад

    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

  • @diegocamilopenaramirez6101
    @diegocamilopenaramirez6101 4 года назад

    Muchas gracias

  • @lopuma1990
    @lopuma1990 2 года назад

    Hola Fazt, como puedo crear ese id, se hace en MySQL o en JavaScript??

    • @FaztCode
      @FaztCode  2 года назад

      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

  • @letslearnabout4934
    @letslearnabout4934 4 года назад

    Gracias por este video, Fazt.
    Por cierto, Insomnia o Postman?

  • @Jmontero1804
    @Jmontero1804 5 лет назад

    Excelente tutorial, lo vi todo, muchas gracias....una pregunta, Fazt, consideras que JWT es mejor que Passport? Gracias.

    • @Biocrista
      @Biocrista 4 года назад

      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)

  • @yormanlopez8553
    @yormanlopez8553 3 года назад

    22:00

  • @galo7486
    @galo7486 2 года назад

    41:03

  • @jesusmercado1283
    @jesusmercado1283 4 года назад

    No entiendo, cual es la diferencia con el otro canal? iluminenme.

  • @williamalfredo2594
    @williamalfredo2594 3 года назад

    Like y me suscribo

  • @kenethsandoval2641
    @kenethsandoval2641 5 лет назад

    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

  • @Naxx99
    @Naxx99 4 года назад

    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

  • @pringstom
    @pringstom 4 года назад

    😂

  • @carlosramirez4961
    @carlosramirez4961 2 года назад

    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!