Nextjs Autenticación con Json Web Tokens (JWT), y Rutas Protegidas con Middlewares

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

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

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

    Coders, este video ha sido editado por un editor, así que si tienen algún problema, con algún corte o algo que se hizo mal en la edición. Por favor comenten el error en que minuto, en un nuevo comentario para poder ver el error y evitar que suceda a futuro. Gracias por ver :)

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

      Vaya, vaya asi que el equipo de Fatz code va creciendo.
      ya lo vamos a ver Fatz y estaremos reportando los errores para que luego vayas y lo azotes para aprenda hacer un buen editor y se porte bien. ; )

    • @code_castle
      @code_castle 2 года назад +1

      Gracias por querer darnos contenido de calidad y estar pendiente de que se cumpla.

    • @daedsoft
      @daedsoft 2 года назад +2

      Está bien, pero los cortes son muy rápidos y toca ser muy preciso para pausar y leer el código.

    • @NicolasoC-xb4yx
      @NicolasoC-xb4yx Год назад +1

      Que Genio! Te mereces 5k likes. Una ayuda enorme! Gracias

    • @AlexisSniffer
      @AlexisSniffer Год назад +1

      da este error JWSSignatureVerificationFailed: signature verification failed, alguien ha encontrado la solución? "next": "13.4.12", "jose": "^4.14.4",

  • @gersonrodrr
    @gersonrodrr 2 года назад +12

    Buen video Fazt, gracias a tí evité comprar cursos costosos, todo lo que enseñas es contenido premium

  • @HackeRandomClips
    @HackeRandomClips 7 месяцев назад

    nunca habia podido entender de forma generalizada este tema hasta que me tope con este video.

  • @gabrielemilianofacio6754
    @gabrielemilianofacio6754 5 месяцев назад

    el minuto 57:17 es algo que te puede tener girando sobre ti mismo semanas sin avanzar. Muchisimas gracias FaztCode

  • @breimerct
    @breimerct 2 года назад +6

    Estaba esperando este video!!! He crecido mucho como desarrollador gracias a tus videos! Te amo k-bron!!!

  • @joaquinbustelo7889
    @joaquinbustelo7889 10 месяцев назад

    Muchas gracias Fazt!, lo quise hacer con vite y aprendi un monton de cosas que no sabía porque tube muchos errores al mandar las cookies y tambien al recibirlas pero pude resolver de apoco cada problema

  • @SonGoku-pc7jl
    @SonGoku-pc7jl 2 года назад +4

    Fazt ha sido una clase magistral, he disfrutado mucho y ya tengo ganas de mañana arrancar con eso metiendo mongodb o a ver donde. Muchisimas gracias por explicarnoslo todo y explicarnoslo tan bién. Disfruto muchisimo aprendiendo contigo y cada dia me sirve más :) por cierto lo que dices del corte es en 1:02:48 cuando next nos dice que al match general le pongamos :path* :)

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

    Últimamente Fazt me salva la vida más de lo que merezco, jajaja. Gracias por este tutorial.

  • @necesidaddelocura
    @necesidaddelocura Год назад +1

    Vi que varios tuvieron el mismo problema que yo de que la cookie no se almacenaba automáticamente al utilizar un servidor con Express. La solución es configurar el cors del server colocando app.use(cors({ origin: true, credentials: true })); y en el fetch de Next colocar en la opción credentials: 'include'. Si usan axios seria withCredentials: true

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

      amigo tienes el repo de esa implementacion?

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

      Buenas!! tengo el mismo problema. Con esto que decís pude finalmente almacenar la cookie. El tema es que cuando quiero llamar al valor de la cookie con req.cookies obtengo un objeto vacío. Alguien sabe porqué?

    • @lucianosantillan164
      @lucianosantillan164 4 месяца назад

      me salvaste bro

  • @jonhjaider1000
    @jonhjaider1000 7 месяцев назад

    Que buen vídeo bro, gracias. Venía haciendo mis propios middlewares haciendo uso del getInitialProps y algunas veces se volvía un poco complicado manejar esto 🙌

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

    I don't speak your language but I understood every word, thanks for your help :)

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

    Me saco el sombrero de lo excelente que están editados los videos. 👏 Kudos for you Fazt!

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

    Literalmente me acabas de salvar, tenía ese error por usar jwt en vez de jose, siempre un genio !

  • @maurolobo3450
    @maurolobo3450 8 месяцев назад

    Excelente video!! Estoy con Nextjs 14, cambie algunas cositas por el App Router pero tu explicacion me sirvio muchisimo!!

  • @cosmoscrew2
    @cosmoscrew2 2 года назад +1

    Que rápido fazt!
    No tiene mucho que me respondiste el comentario donde te pedía esto
    Muchas gracias!

  • @job-gg
    @job-gg Год назад +7

    Si a alguien le da el siguiente error:
    [JWSInvalid: Compact JWS must be a string or Uint8Array] {
    code: 'ERR_JWS_INVALID',
    name: 'JWSInvalid'
    }
    Lo mas probable es que se esté pasando un objeto y no un string que es lo que se espera, en ese caso prueben extrayendo de la variable jwt la propiedad "value" haciendo algo como lo siguiente:
    await jwtVerify(jwt.value, new TextEncoder().encode("secret"));
    De esta forma le pasamos solo el valor y no el objeto completo
    Espero le sirva a alguien, ya que yo me tarde como hora y media en darme cuenta de ello jajaja. ¡Saludos!

    • @WILLL859
      @WILLL859 Год назад +1

      Estaba igual pero la solucion es super sencilla solo cambia la version de next a la 12.7.4 y ya

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

    Chaboon! haber escuchado el tutorial en castellano creo que me hizo conectar mas facil los conocimientos, porque gracias a la parte de middleware pude resolver algo que me tenia trabado hace unos dias, sos crack!! gracias por la explicacion!

  • @luisfernandosierra5871
    @luisfernandosierra5871 2 года назад +2

    Este video lo estaba esperando hace mucho , muchas gracias. Excelente aporte

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

    Buenísimo. Mucho más fácil que con React puro, jeje... Y si le sumamos Context o Redux, recontra power. Tu video vale oro.

  • @Deus-lo-Vuilt
    @Deus-lo-Vuilt 2 года назад +1

    Gracias por el video Fazt , justo mis palabras preferidas , ejemplo practico y donde voy a enseñarles

  • @arnoldcruz4360
    @arnoldcruz4360 2 года назад +1

    Fazt te luciste con este video y con todos los que haces. Espero esos próximos ejemplos siguiendo este enfoque. 😁👌

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

    Rayos nextjs verdaderamente es un unicornio

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

    Fazt, este video pudo ahorrarme dos días de googlear anteayer jajaja. Pero igual gracias, gran video. Amo tu contenido

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

    Gran explicación.
    Por fin he podido entender, de forma clara, cómo funcionan los middlewares en Nextjs
    Gracias y un saludo.

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

    Increíble, para dummies. Muchas gracias.

  • @programando_con_valor491
    @programando_con_valor491 2 года назад +1

    Excelente aportación Fazt, gracias ...

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

    Bro este tutorial está brutal, de los mejores que he visto

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

    ¡Gracias! Excelente video, sigue con este canal, comparte más de nextjs!

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

    Que maestro. No sabes cuánto lo esperaba.
    Sos gigante, Fazt. Saludos desde Argentina.

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

      Gracias Aaron, Saludos :)

  • @starckops8692
    @starckops8692 5 месяцев назад

    GRACIAS POR TODO FAZT!!!! algún día te invitare un café

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

    Gracias Fazt code, te juro que me re salvaste con esto, justo lo que necesitaba

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

    excelente video fazt eres todo un crack, eres mi profesor favorito

  • @kev153
    @kev153 2 года назад +5

    Hola Fazt gracias por el video, fue muy valioso, despues de la version 12.2 de next no he visto ningun video en youtube con info actualizada sobre los middlewares hasta ahora. Podrias subir un video usando los middlewares de next usando todo lo q ofrecen ? Te lo agradeceria un monton 🙏🏻😭

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

    Siiiiiii!!!!!! estuve buscando muchas formas y tutoriales para poder proteger rutas. Gracias por el tutorial.
    voy a ver como aplico esto con tu tutorial de react con firebase pero en nextjs.

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

    Super genial video para aprender autenticación en next espero hagas pronto mas video de next, Gracias FaztGod!!!

  • @benjaoliva3383
    @benjaoliva3383 2 года назад +1

    Muy bueno video Fazt, muy claro y conciso, directo al grano !!

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

    justo lo que nesesitaba para implementar en mi siguiente proyecto... muchas gracias fazt

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

    Impecable explicacion como siempre, super util toda la info que subis, gracias y saludos!

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

    Es increíble la calidad de la explicación! Grande!

  • @sandrosimon
    @sandrosimon 2 года назад +3

    Otro video del legendario Fazt muy buenísimo. Tenía una duda: más o menos en el minuto 18:00 mencionas aquello de serializar. ¿Significa darle un formato especial a algún dato? ¿Es necesario hacerlo siempre? Gracias.

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

    Ojala algun día haga una aplicación completa con estas tecnologías

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

    Maestro de maestros.

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

    el mejor lugar de youtube es este

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

    Amazing. Thank you very much. Middleware was always badly explained on next.js website and example codes.

  • @luishernandosendoyaserrato2544

    Excelente y claro. Mil gracias por el contenido, eres inspirador.

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

    Felicidades! - Muchas gracias.

  • @antonioislasromero5539
    @antonioislasromero5539 6 месяцев назад

    Maravilloso ❤

  • @kevkev9824
    @kevkev9824 2 года назад +1

    Logre hacer el tutorial en typescript :3 queda mucho mejor, eres un crack!

    • @josiaschirino8380
      @josiaschirino8380 Год назад +1

      Saludos bro. Como hiciste para setear las cookies. A mi no me funciona.

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

      @@josiaschirino8380 te lo diría si recordara lo que hice hace 9 meses xD

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

    PERO QUE BUEN VIDEO HERMANO.

  • @marxeballos
    @marxeballos 3 месяца назад

    Te quiero Fazt 🥰

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

    esto si me dio problemas esta semana sobre todo por el caso de verify jwt. Lo que hice que lo comunique por fetch desde mi backend a parte, es mas lento pero se me hace eficiente porque tengo front y back por separado. pd: seria bueno que hicieras un video sobre edge functions

  •  Год назад +1

    Hola Fazt! muchas gracias por tu contenido siempre bueno!
    Solo queria agregar que tal como muestras en el video proteges rutas pero cuando vuelves a /login te lo permite lo cual no debe pasar. Trate de redireccionar cuando el pathname es /login a / pero no fue posible en el middleware pero la solucion con la que pude hacerlo es desde la page login propiamente, tomando el context.req.cookie del getServerSideProps lo cual me permitio conocer si existe un cookie, luego validarlo y redireccionarlo a / sino return : {props:{}}. Si existe otra solucion que no encontre por favor compartirla! gracias!🙃

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

    Muy buen video, justo lo que buscaba

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

    Excelente super bien explicado y ameno, gracias!!!

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

    Buen video, me aclaraste muchas cosas sobre la autenticación en ssr

  • @d13-s8b
    @d13-s8b 2 года назад +1

    Grazie!!

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

    Has mejorado mucho la calidad de los tutoriales.

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

    Buaaaa seguir este curso con la nueva actualizacion de next js13, fue todo un reto :0 JAJAJ si tienen dudas con gusto se las respondo

  • @blackwolf0011
    @blackwolf0011 2 года назад +3

    Wow como siempre excelente!!! Muchas gracias por tu tiempo, por cierto. Cómo se llama el tema que usas para VS code? Se ve genial

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

      Este tema se llama Ayu 😃

    • @blackwolf0011
      @blackwolf0011 2 года назад +1

      @@FaztCode muchas gracias!

  • @simonhblanco
    @simonhblanco Год назад +1

    Excelente tutorial..... Una consulta, si quisiera que el dashboard, solo pueda ser visto por una sola pestaña, es decir, si una vez logueado, intento abrir la misma información en otra pestaña, se debe controlar esto en el middleware ?

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

    Gracias Fazt!!!

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

    Videazo!

  • @elemda_ms
    @elemda_ms 2 года назад +1

    Tengo el back-end separado del front-end, a la hora de recuperar las cookies me sale "undefined", ¿Cómo puedo hacer para que me traiga la cookie?, leí en StackOverflow que si están separados no se puede extraer una cookie y que es mejor hacerlo a través del LocalStorage, ¿eso es cierto?

  • @cesaraar
    @cesaraar Год назад +1

    Excelente video master, es posible que tengas algun video donde uses la ruta "pages/api/auth/[...nextauth].js" que da next js para hacer login contra una base de datos mysql.
    gracias por todo

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

    Si va a hacer un proyecto, puede implementar la estrategía de refresh token para que no tengan acceso al token y, en el backend, nestjs junto con TypeORM y Postgres

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

    Epa! lo voy a replicar en python 👊

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

    Excelente video!!! 👏👏

  • @kevkev9824
    @kevkev9824 2 года назад +3

    seria genial que implementes un proyecto de next con redux :3

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

      Voy a tratar de hacer uno muy pronto :)

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

      @@FaztCode Por favor!

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

    Muy buen video 😃

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

    Excelente video. Si bien ya sabia utilizar jwt este video me saco varias dudas que tenia. Estoy queriendo usar express-session pero no le termino de entender. Podrías hacer un video de ejemplo de este? Saludos!

  • @AndresGarcia-tg7zk
    @AndresGarcia-tg7zk Год назад

    muy buen video !!

  • @thebigj3957
    @thebigj3957 2 года назад +1

    fazt, una pregunta, al querer hacer un auto redirect, se podría hacer con el middleware? o tendría que hacerlo con el userRouter().push()? al intentar hacerlo con el middleware se vuelve loquisimo.
    Grcias!

  • @gposoft
    @gposoft 2 года назад +1

    EXCELENTE saludos

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

    Muchas gracias!

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

    te amo bro gracias

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

    Genial clase, maestro! Solo creo que ha quedado pendiente ver como comprobar que el token ha caducado o no en el middleware para mandar al login a los expirados. Con jwt ya lo hemos visto, pero con jose veo que no me da error cuando el token ya ha caducado...

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

      Es curioso pero parece que cuando hacía el destructuring de {payload}=jswVerify(...) la libreria jose no arrojaba error por tiempo expirado, al guardar todo lo que retorna parece que si. Luego de ahí extraigo el payload. ¿No es extraño?

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

    Buenisimos aporte bro.

  • @igor.miranda
    @igor.miranda Год назад

    Hola gracias por el contenido, podrías enseñar como usar el Middleware con firebase al iniciar sesión, Nextjs en su version 13 cambio mucho. Ojala puedas. saludos y gracias por enseñar.

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

    Muchas gracias hermano

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

    Excelente video, solo que tengo el back por separado y me causa problemas en mi ambiente de producción, en local funciona correctamente pero en producción cuando manipulo el token no me envía hacia el login y cuando recargo la pagina me manda al login aunque exista el token valido

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

    Mi backend está con Nest.js, como haría para pasarle las cookies en el middleware?

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

    Sos Crack!

  • @miguelvasquez9849
    @miguelvasquez9849 2 года назад +1

    Tengo una duda. No es inseguro que el front sea quién proteja las rutas? O sea una persona no podría modificar el JS para poder acceder a esas rutas?

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

    grande crack 👍

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

    Hola Fazt espero leas mi comentario, me encuentro desesperado porque estoy usando el bakcend en un localhost distinto al frontend con Vite, entonces las cookies se guardan en el servidor y no se almacenan en el lado del cliente, me gustaria saber como puedo enviarle al cliente la cookie y almacenarla ya que he estado investigando en español e ingles pero no encuentro lo que necesito :C

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

    Que extensión utilizas para el autocompletado ? es copilot?

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

    Buen video, pero yo cuando hago el setHeader no me manda la cookie? sera porque tengo antes un cookie parser o el expresssession?

  •  Год назад

    Excelente video, en el caso de los usuarios que tengan roles y tiene accesos a diferentes vista, el config cambiaria?

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

    Gracias Fazt por el video, era justo lo que estaba buscando!!

  • @cristiandariovila6321
    @cristiandariovila6321 8 месяцев назад

    Buenas! antes que nada gracias por tus videos! te hago una consulta... baje tu repositorio e inclui en el layout principal un navbar con Links a las distintas paginas creadas (login, dashboard, home) y aca empezo un problema, porque al navegar por los links noto que no siempre pasa por el middleware(puse un console.log para verificar los pasos) entonces al hacer logout y despues entrar al link de dashboard me ingresa cuando no deberia(y obviamente al solicitar lodatos de usario tira error)... tienen q pasar varios segundo(incluso talv vez un minuto) para q al darle click al link vuelva a pasar por el middleware... sera q es una configuracion de los middleware o del componente Link de next? gracias

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

    Fazt todo muy bien pero el uso del middlewareme dejo inservible el router.push en las rutas protegidas, tengo que acceder manualmente a ellas desde el url, ya no puedo con botones o router.push

  • @alant.695
    @alant.695 Год назад

    puedo hacer lo de la cookie igual en express sin nest ? es que al front no me llega la cookie no la crea

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

    De tu tutorial React & Firebase Login con API Context (Firebase Authentication) ¿Cómo consigo el token o el cookie para aplicar lo de este tutorial? Estoy tratando de convertir el codigo de ese tutorial a este pero usando nextjs.

  • @MiguelÁngelFernándezRodríg-q6b

    fazt al ejecutar el codigo y correrlo en produccion en el middleware no me reconoce las cookies en la primera renderizacion de la pagina por lo que me envia al login siempre aun despues de authenticarme, lo reconoce despues de refrescar el navegador , por que ocurre esto y como podria arreglar el problema

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

    Muy buen video, aunque me quedé con ganas de saber como sería la autenticación mediante el ROL del usuario, por ejemplo, que hubiera páginas que sólo pudiera acceder un administrador y no un usuario común, cualquier ayuda se agradece :).

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

      Pero si se supone que en el payload esta el rol es el mismo caso del video

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

    @Fazt Code por favor sube un video de como hacer pruebas unitarias usando Jest en NextJs

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

    Aplicar jwt en Express JS para validar usuarios y sesiones sería similar?

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

    Consutla @fazt como hacemos en el logout para eliminar las cookies del lado del cliente?

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

    lots of thanks.. please next do the same but with supabase or firebase

  • @eduardferneycruzospina494
    @eduardferneycruzospina494 2 года назад +3

    Hola Fazt, primero que todo quisiera agradecerte por todo el contenido que haces, explicas muy bien y se entiende todo de forma clara, por otra parte quisiera preguntarte como podria proteger o restringir el acceso a /login si el usuario ya esta autenticado, es decir, ya el usuario inicio sesion y esta la cookie en el navegador y el usuario digito en la barra de navegacion la ruta /login pero como ya esta autenticado que no le permita el acceso sino hasta despues de que se eliminen las cookies o haga logout?