🔒¿ Cómo usar JWT y ANGULAR?, ¿Qué es Jwt o json web token? tutorial actualizado

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 ธ.ค. 2024

ความคิดเห็น • 99

  • @LeiferMendez
    @LeiferMendez  3 ปีที่แล้ว

    ├ 𝙑𝙀𝙍 𝙏𝙊𝘿𝙊𝙎 ⮕ leifermendez.github.io/#/
    ├ 𝘼𝙉𝙂𝙐𝙇𝘼𝙍 desde cero ⮕ bit.ly/367tJ32
    ├ 𝙉𝙊𝘿𝙀 Express desde cero ⮕ bit.ly/3od1Bl6
    ├ 𝙈𝙊𝙉𝙂𝙊𝘿𝘽 desde cero ⮕ bit.ly/3qh35wK
    ├ 𝙎𝙊𝘾𝙆𝙀𝙏.𝙄𝙊 desde cero ⮕ bit.ly/3pg1Q02
    └ 𝙉𝙂𝙍𝙓 𝙙𝙚𝙨𝙙𝙚 𝘾𝙀𝙍𝙊 ⮕ link.codigoencasa.com/NODE

  • @cristianmoreno5486
    @cristianmoreno5486 3 ปีที่แล้ว +2

    Gracias muy bien explicado creo que más claro no lo pudistes explicar jejej me has salvado jja

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว

      Hola Cristian jeje qué bueno y gracias por formar parte de esta comunidad

    • @cristianmoreno5486
      @cristianmoreno5486 3 ปีที่แล้ว

      De nada brooo la verdad me has salvado de unas jajaja

  • @javimania111
    @javimania111 2 ปีที่แล้ว +1

    Muy bien explicado, me ha quedado todo muy claro, muchas gracias!

  • @AGG7manchesterunited
    @AGG7manchesterunited ปีที่แล้ว +1

    que es mejor localstorage o una cokie?,tienes algún video tocando el tema de ataques XSS,metiendome al tema dicen que localstorage tiene esa contra

  • @PaoloPC54
    @PaoloPC54 3 ปีที่แล้ว

    Me sirvió de mucho este vídeo, mil gracias en serio, ERES UN CRACK!!!!!!!!!!!!!!!! saludos desde Perú.

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว

      Saludos Paolo y bienvenido a esta comunidad

  • @agustindelabarca
    @agustindelabarca 2 ปีที่แล้ว +1

    otra de la innumerables veces que me salvas la vida

    • @LeiferMendez
      @LeiferMendez  2 ปีที่แล้ว +1

      Gusto tenerte de nuevo! gracias por tu comentario y cualquier cosa ya sabes aqui ando y ahora en instagram 🤣🤣

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +1

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @Adoracion-Alabanza
    @Adoracion-Alabanza 2 ปีที่แล้ว +1

    Mas que claro!!! 100% recomendado

  • @cristianalexisgaleanoruiz9506
    @cristianalexisgaleanoruiz9506 3 ปีที่แล้ว

    Primer video que veo de tu autoría y me ha gustado, se entiende muy bien

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว +1

      Hola Cristian gracias por tu comentario espero que te sea de utilidad igual si gustas pasarte por mi canal tengo mas video de Angular, Node etc y aqui aprendemos juntos :)

  • @martingonzales2665
    @martingonzales2665 2 ปีที่แล้ว +1

    Gracias muy bueno!!!!!!!!

  • @raulrojas6552
    @raulrojas6552 8 หลายเดือนก่อน +1

    facil y para toda la familia

  • @thekingwars
    @thekingwars 3 ปีที่แล้ว +10

    Como plus, seria bueno que explicaras como refrescar un token, para mantener sesiones activas al menos que el usuario quiera desloguearse. Saludos, me encanta tu contenido

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว +2

      Gracias por tu comentario! lo tendre en cuenta para los proximo videos :)

    • @JoseLuis-sr4xw
      @JoseLuis-sr4xw 3 ปีที่แล้ว

      @@LeiferMendez seria interesante saberlo

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว

      @@JoseLuis-sr4xw que cosa exactamente con gusto te explico

    • @crackzz8913
      @crackzz8913 3 ปีที่แล้ว

      @@LeiferMendez resfrescar un Token y mantener la sesión

    • @jeanluiguipierre
      @jeanluiguipierre ปีที่แล้ว

      @@LeiferMendez lo explicaste?

  • @fernandocampos9859
    @fernandocampos9859 3 ปีที่แล้ว

    Buen video!, genial que estés escuchando la comunidad. Yo comente sobre el post que hiciste preguntando si seria bueno hacer este video y escuche justo lo que te propuse hablar y un poco mas +10 (Y)

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว +1

      Gracias por ver seguiré conectando más con la comunidad

  • @Adrian__d-.-b
    @Adrian__d-.-b 2 ปีที่แล้ว +1

    hola Leifer Mendez, buen video la creación de un proyecto front y back end seria excelente usando los JWT de forma local ...Saludos desde COLOMBIA

    • @Adrian__d-.-b
      @Adrian__d-.-b 2 ปีที่แล้ว

      He visto varios videos sobre el tema pero no muy recientes, tengo ya el backend made in php laravel con seg JWT y eh consumido tales apis pero no de la forma mas eficiente usando guards pero me interesa ver mas al respecto ...Interceptors etc .... DE NUEVO SALUDOS DE COLOMBIA COMPADRE

  • @francovedia5584
    @francovedia5584 ปีที่แล้ว +2

    gracias, lastima que no se ve todo el codigo inferior en la parte del interceptor

  • @EnriqueRamirez-y1i
    @EnriqueRamirez-y1i ปีที่แล้ว

    Hola, podría compartir el backend de este ejemplo porfa, muy buena la información

  • @ysacpebes1462
    @ysacpebes1462 3 ปีที่แล้ว

    Excelente video muchas gracias Dios te bendiga 😊😊😊

  • @fernandopereyra892
    @fernandopereyra892 2 ปีที่แล้ว +1

    Hola leifer, excelente video. La parte del backend la explicas en otro video?

    • @LeiferMendez
      @LeiferMendez  2 ปีที่แล้ว +1

      Hola Fernando claro que si te comparto el video en el minuto que explico esto del lado del backend th-cam.com/video/xRXHQlqA3Ak/w-d-xo.html

  • @malvarez1001
    @malvarez1001 2 ปีที่แล้ว

    Hola Leifer, buen video, consultas. Tu hablas de guardar en una cookie el token. La primera pregunta es, se puede proteger lo que está almacenado en las cookies para que no sea accesible por decirlo de alguna forma, haciendo click en inspeccionar??. La segunda pregunta es, donde manejas la renovación automática cuando expira el token ?. Mi backend lo tengo en django y uso el token que me genera django rest framework, lo guardo en ionic storage y también es accesible de forma facil. Saludos

  • @ErwinBrown
    @ErwinBrown 3 ปีที่แล้ว +1

    Hola Leifer muy fácil comprender lo que explicas. te quería consultar. Al igual que el local storage el cookie puede ser accedido por js. Qué opinas del cookie httponly , seria más seguro y no puede ser accedido con js. lo has utilizado?

  • @ricardolopez6194
    @ricardolopez6194 2 ปีที่แล้ว +2

    gracias

  • @paputec
    @paputec ปีที่แล้ว +1

    gracias por la explicación, pero agradeceria no presentar pantallas blancas por que mis ojos se alborotan :)

  • @TheEngineer601
    @TheEngineer601 2 ปีที่แล้ว +1

    una pregunta, y la propagacion del jwt entre microservicios es tarea de angular o es tarea del gateway que orquesta los microservicios?

  • @rocketbox9
    @rocketbox9 ปีที่แล้ว

    Hola una consulta es necesario guardar el token en la base de datos? o ya no es necesario para temas de seguridad?

  • @ManuelHernandez-px5bg
    @ManuelHernandez-px5bg 3 ปีที่แล้ว +1

    Muchas gracias por el video tengo una duda yo lo e realizado guardando el token en el localstorage!! Pero e visto que no muchos lo recomiendan está mal guardarlo ahí o es siemplemente cuestión de gustos

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว

      Yo personalmente uso cookie porque me facilita poder colocar tiempo de vida a la cookie pero ya lo que mejor se adapte a gi

    • @ManuelHernandez-px5bg
      @ManuelHernandez-px5bg 3 ปีที่แล้ว

      Muy Interesante la verda en pocas líneas de código lograr crear el interceptór y me gustó mucho tu lógica
      Muchas gracias por compartir tu conocimiento

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว

      @@ManuelHernandez-px5bg Gracias Manuel bueno estamos creando una comunidad y esperamos que los videos se compartan

    • @crackzz8913
      @crackzz8913 3 ปีที่แล้ว +1

      @@LeiferMendez Yo también estoy usando cookies para compartir entre varios dominios, pero dicen que esto no es seguro y que será deprecado

  • @jhorsendavidachede3662
    @jhorsendavidachede3662 3 ปีที่แล้ว +3

    Brotha, pregunta...
    porque en cookies ? Porque no en localStorage ?

  • @andresbeggs1535
    @andresbeggs1535 3 หลายเดือนก่อน

    el contenido es excelente, pero deberia remake con la angular version 18.

  • @skyz3
    @skyz3 2 ปีที่แล้ว

    Una consulta Leifer, veo que cuando realizas el login el json que te devuelve el backend es un data con la informacion del token y el usuario, mi duda es la informacion del usuario como ser: email, name, _id, role se la podria colocar en el payload del token, para asi obtenerla con angular, segun veo JWT puedes obtener la informacion del payload.
    Ahora como se realiza la obtencion de informacion del payload con angular?

    • @LeiferMendez
      @LeiferMendez  2 ปีที่แล้ว

      Hola, buen día! Pasate sí deseas por el canal de discord donde tengo una sección orientada a la asesoría técnica.
      Te dejo el link a mi comunidad por si deseas unirte, allí podrás encontrar algún colega dispuesto a apoyarte.
      link.codigoencasa.com/discord
      ¡Un saludo!

  • @fernandocampos9859
    @fernandocampos9859 3 ปีที่แล้ว +7

    Leifer una consulta, con tu video estoy implementando jwt, interceptores y guards en un proyecto y quede pegado en una cosa, como hago para llamar al interceptor, lo definí como lo hiciste en el proyecto pero me imagino que hay que implementarlo en alguna parte para que lo llame cuando haga solicitudes http y poder elegir cuando quiero o no llamar a ese interceptor. Donde se hace eso?, en el appModulo, en providers o como alguna dependencia?. Si me puedes ayudar con eso te lo agradeceria. Saludos.

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว +5

      Hola Fernando tienes razón en la descripción está el link al blog donde explico más igual te dejo el link www.codigoencasa.com/angular-y-jwt/ cualquier duda me comentas

    • @fernandocampos9859
      @fernandocampos9859 3 ปีที่แล้ว +1

      @@LeiferMendez Que grande muchas gracias!!!

  • @tannynogales7080
    @tannynogales7080 2 ปีที่แล้ว +1

    Maravilloso contenido :) en relación a los interceptor, como haces para diferenciar endpoint públicos y privados? 😳

    • @LeiferMendez
      @LeiferMendez  2 ปีที่แล้ว

      Hola, tanny la verdad a nivel de fornt no lo hace técnicamente no pasa nada que un endpoint público reciba el encabezado con authorization así que es indiferente

  • @hernanvilar1960
    @hernanvilar1960 2 ปีที่แล้ว

    Buenas Leifer! te hago una consulta que no entiendo en general de las cookies, vi que en algunos sitios te piden permisos para poder usar la cookie, no lo pueden sin el consentimiento de uno. ahora yo necesito mostrar una alerta para utilizar las cookies para guardar el token? o es otro tipo de permisos y no lo debo pedir? Saludos!

    • @LeiferMendez
      @LeiferMendez  2 ปีที่แล้ว

      Hola Herman eso sobre todo se usa cuando tú usas servicios de terceros cómo analítica, o cosas que tiene ver con la publicidad o rastreo en este caso solo es una cookie de funcionamiento

    • @hernanvilar1960
      @hernanvilar1960 2 ปีที่แล้ว +1

      @@LeiferMendez Perfecto, o sea en caso de logins y demas se pueden usar sin problemas?, muchas gracias por contestar

  • @felixjimenezgonzalez9292
    @felixjimenezgonzalez9292 3 ปีที่แล้ว +1

    Estoy intentando hacer lo mismo con localStorage. En principio va todo bien, pero me acabo de dar cuenta que el token del interceptor está null. He hecho debug y he visto que el interceptor salta antes de hacer login y por tanto, al no haber iniciado sesión, tiene sentido que no haya token. ¿Cómo puedo hacer que el interceptor se ejecute después del login?
    Muchas gracias! Un vídeo estupendo!

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว +1

      Hola Félix mm técnicamente el interceptor se va a ejecutar antes de la petición. Cual seria el caso de uso ? Querés proteger una ruta ? Si es así th-cam.com/video/nox__spS6k4/w-d-xo.html

    • @felixjimenezgonzalez9292
      @felixjimenezgonzalez9292 3 ปีที่แล้ว

      @@LeiferMendez Buenas! Tengo la siguiente situación:
      Dentro de una webapp que usa MEAN, en el back he especificado que debe incluir las cabeceras authorization: Bearer token (para efectivamente que un usuario vea solo sus propios datos).
      Cuando estoy pasando al front los datos y aplico el interceptor (para "set" las cabeceras), este se ejecuta antes que el login, por lo que al no haberse iniciado sesión, no tenemos token ni datos de usuario. Consecuentemente la cabecera ni si quiera existe.

    • @felixjimenezgonzalez9292
      @felixjimenezgonzalez9292 3 ปีที่แล้ว +1

      Para que te hagas una idea, haciendo debug en la línea de instanciación del token (en tu código línea 20), en pantalla está el formulario (al no haber iniciado sesión no hay token, sin embargo ya se ha instanciado en el código)

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว

      @@felixjimenezgonzalez9292 entiendo puede ser que la funcion que utilizes para obtener el valor de tu localstorage sea sincrona y no esta esperando hasta obtener si es el caso trata de hacerla promesa y retornar un promesa en el canactivate ya que tambien permite el retorno de promesas

  • @urtaav639
    @urtaav639 3 ปีที่แล้ว

    Muy buen video, pero una mejora seria con roles broo

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว

      Claro que si hare un video de ROL con los guard!

    • @jhorsendavidachede3662
      @jhorsendavidachede3662 3 ปีที่แล้ว

      @@LeiferMendez un usuarios con varios Roles.. para q lo tengas presente porfa. Ojalá uses el ngx-permissions

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว +1

      @@jhorsendavidachede3662 hola gracias por ver! ya son varios los que quieres un video de roles lo hare!

  • @JoseLuis-sr4xw
    @JoseLuis-sr4xw 3 ปีที่แล้ว +1

    en lugar de guardar el token en una cookie lo podria guardae en el local storage, no?

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว

      Hola José si, también puedes guardarlo en localstorage

  • @HumbertoRojas
    @HumbertoRojas ปีที่แล้ว

    Tengo una duda, cómo haría después de autenticarme para mantener variables en sesion con Angular?

  • @albertomerchanc2855
    @albertomerchanc2855 ปีที่แล้ว +1

    Hola buen video, pero en el payload del login se ve el password

    • @LeiferMendez
      @LeiferMendez  ปีที่แล้ว

      Correcto! ese es el punto el backend debe ser capaz de validar

  • @nythe3009
    @nythe3009 2 ปีที่แล้ว

    Cual es la forma de proteger las rutas con guards en un proyecto real? Supongo que al validar simplemente que exista la cookie "token" no es seguro porque se puede crear esa cookie manualmente. Saludos y muchas gracias por el contenido

    • @LeiferMendez
      @LeiferMendez  2 ปีที่แล้ว +1

      Hola! Buena pregunta se debe tener en cuenta que el backend es el encargado de validar si el token es válido y deolver la información si alguien coloca una cookie manualmemte puede entrar a la ruta efectivamente pero cuando en esa ruta haga las peticiones al backend con esa cookie fake el backend no va a retornar nada. Por otro lado sistemas más seguro lo que hacen es que aparte de verificar si tienen cooki en ese momento en el guard hacen una petición a un endpoint en el backend que se encargue de verificar si el token es válido y de lo contrario dejarlo pasar.

    • @nythe3009
      @nythe3009 2 ปีที่แล้ว

      @@LeiferMendez a ok perfecto, yo lo que hice en un sistema fue que el Guard solo protegía de cierta manera el acceso a la ruta, pero para usuarios más "vivos" implementé un endpoint en el back que validada la sesión en base al token, esta validación la ejecutaba en el ngOnInit y si todo iba bien hacia la carga de data, si no cerraba sesión, además para cada petición entraba a un Middleware y validada la sesión y si todo iba bien ejecutaba el código del controlador, no se si ese enfoque está bien en cuanto a buenas prácticas o si se pudiera mejorar. Gracias

    • @LeiferMendez
      @LeiferMendez  2 ปีที่แล้ว

      @@nythe3009 SII está buen yo recomendaría esa función que colocaste en el ngOninit del controlador llevarlo a una función dentro del propio guard y así evitas estar colocando esa función en el componente

    • @nythe3009
      @nythe3009 2 ปีที่แล้ว

      @@LeiferMendez perfecto. Agradezco mucho tus respuestas, estoy buscando crecer con angular y llevar buenas prácticas y es de mucha ayuda saber la opinión de personas con mucha experiencia.

  • @tannynogales7080
    @tannynogales7080 2 ปีที่แล้ว +1

    Dado que los Guars se implementan en el lado del cliente, es seguro usar esa práctica?

    • @LeiferMendez
      @LeiferMendez  2 ปีที่แล้ว

      MMM me refiero tu por el backend tienes que proteger todas las rutas que sean privadas. Siempre tienes que imaginar que alguien puede ver el la consola del navegador y poder ver las url a las cuales hacen peticiones

  • @KANGAESAIKO
    @KANGAESAIKO ปีที่แล้ว

    Se esperaban 0-1 argumentos, pero se obtuvieron 2
    Esto en el .clone()
    ni idea

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +1

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +1

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +1

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +1

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +1

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +1

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +3

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +1

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +1

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +1

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +1

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว +1

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

  • @tecnosystemgamez8479
    @tecnosystemgamez8479 3 ปีที่แล้ว

    Muy buena explicacion, tendras este ejemplo en algun repositorio para poder descargarlo. Saludos

    • @LeiferMendez
      @LeiferMendez  3 ปีที่แล้ว

      En el blog encontraras párate el código para que lo puedas utilizar www.codigoencasa.com/angular-y-jwt/