No video

Qué es JWT, cómo funciona y buenas prácticas

  Рет қаралды 95,005

CodelyTV - Redescubre la programación

CodelyTV - Redescubre la programación

Күн бұрын

Analizamos mediante un ejemplo qué son y cómo funcionan los JSON Web Tokens (JWT), su diferencia respecto a las sesiones, y cómo utilizarlos para asegurar enlaces temporales de recuperación de password, invitaciones de usuario, etc.
Este vídeo es parte de la lección de Autentificación JWT del curso de 🎶 Symfony mantenible y escalable 👉 bit.ly/symfony... 👈
#JWT #JsonWebTokens #Auth
{▶️} CodelyTV
├ 🎥 Suscríbete: kzbin.info...
├ 🐦 Twitter CodelyTV: / codelytv
├ 🧔🏻 Twitter Javi: [ / javiercane ]( / javiercane )
├ 👨🏻‍🌾 Twitter Dani: [ / dsantaka ]( / dsantaka )
├ 📸 Instagram: / codelytv
├ ℹ️ LinkedIn: / codelytv
├ 🟦 Facebook: / codelytv
└ 📕 Catálogo cursos: bit.ly/cursos-...

Пікірлер: 86
@CodelyTV
@CodelyTV 3 жыл бұрын
¿Usas JWT en tu día a día? ¿Qué otros temas de seguridad te interesan? Refresh Tokens, OAuth, SSO, CORS... 👀
@SkillisForNoobs
@SkillisForNoobs 3 жыл бұрын
Todos xD Yo empezaría explicando los diferentes flows que hay y sus particularidades en detalle (no el típico post) y sus implicaciones
@dannywolfmx
@dannywolfmx 3 жыл бұрын
Cómo alternativa a JWT, yo utilizo Paseto que obliga a que los tokens sean seguros, cosa que en jwt quien lo implementa es quien tiene que recordar hacer seguros sus tokens.
@kiquenet
@kiquenet 3 жыл бұрын
@@dannywolfmx ejemplo?
@gabrielviera1164
@gabrielviera1164 3 жыл бұрын
Todos! X2 jajaja excelentes vídeos
@hansfpc4103
@hansfpc4103 3 жыл бұрын
SSO y Oauth
@mauriborelli
@mauriborelli 2 жыл бұрын
Muy buena explicacion, lo unico que le agregaria un diagrama de arquitectura o componente y/o un diagrama de secuencia para entender la interacción entre componentes y entender el sentido de los flujos de datos. Muchas gracias.
@anomfb
@anomfb 2 жыл бұрын
No voy a decir que son el mejor canal. Pero su contenido es muy bueno de pequeños detalles se aprende, gracias sigan avanzando asi
@diarioparaemprendedores
@diarioparaemprendedores Жыл бұрын
Que locura wow 🤩 esto si es contenido de calidad
@kevinsanchezarana9245
@kevinsanchezarana9245 3 жыл бұрын
Hay que tener en cuenta que el payload para JWT es un simple base64. Con lo cual, no debemos almacenar ningún dato sensible en el mismo.
@joseguzmangonzales7533
@joseguzmangonzales7533 3 жыл бұрын
Una consulta, guardar en el token solo id del usuario, es mala práctica?
@kevinsanchezarana9245
@kevinsanchezarana9245 3 жыл бұрын
@@joseguzmangonzales7533 Mientras no sean datos sensibles y los utilices en el front o back no hay problema. Además, sin quieres que no exista estado, es una buena alternativa para asociar ese token con uno de tus usuarios, ya que sino usas otro campo el token quedaría huérfano.
@OftFilms
@OftFilms 3 жыл бұрын
En los claims pueden ir datos sensibles por ejemplo si usas openid connect ahí puedes recibir datos como correo electrónico, nombres, datos de un perfil. A pesar de tener conexión TLS y firma. Es recomendable usar cifrado del JWT.
@camilogomez5151
@camilogomez5151 3 жыл бұрын
@@joseguzmangonzales7533 yo no usaría el ID primario, pondría un username o el email del usuario, que ambos deben ser unicos
@pringstom
@pringstom 3 жыл бұрын
@@joseguzmangonzales7533 si el id es auto incrementable NO, si es un UUID sip
@maykol161
@maykol161 4 ай бұрын
jejejeje me causa gracia como el de man de la derecha narra lo que está pasando.. jejeje.. interesante formato.. buen trabajo..
@Magistrado1914
@Magistrado1914 3 жыл бұрын
Excelente vídeo y explicación Visto en 04/09/2021
@angelicacouftoloza6577
@angelicacouftoloza6577 9 күн бұрын
2024
@thevolcomstone10
@thevolcomstone10 3 жыл бұрын
Y el ¡Key de la cuestion! :D
@JosueBasurto
@JosueBasurto Жыл бұрын
Jajaja me agrada la explicacion hacia los mortales de Javi!
@carlosagustinlopezavila3995
@carlosagustinlopezavila3995 3 ай бұрын
Saludos desde México
@fuckyeahgs
@fuckyeahgs 3 жыл бұрын
esa optimizacion sobre el peso de los certificados no deberia ser tan importante, los paquetes viajan por la red con un tamaño fijo, muchas veces intentar ahorrar 4 bites (como este caso) no hace que se use un nuevo paquete si no que vaya un paquete medio vacio. Por otro lado enviar suficiente informacion con el jwt puede conseguir evitar consultas en db y por tanto reducir el tiempo de respuesta, actualmente mucho mas importante que el peso de la peticion
@MauricioMurielDev
@MauricioMurielDev 2 жыл бұрын
Excelente explicación muchachos, muy bien!
@EzequielRegaldo
@EzequielRegaldo 3 жыл бұрын
Es una pésima práctica meter el token en la URL. Por no decir que es 100% vulnerable a un ataque man in the middle. Esas cosas van mínimo en cabeceras para evitar ataques, sino la encriptación de punto a punto está de pisa papeles. A menos que poco importe que otra persona tenga el token. De todos modos es peligroso y fuera de estándares hacer eso
@darkozz_
@darkozz_ 3 жыл бұрын
x2, para eso están el *headers*
@heynerhumanez4406
@heynerhumanez4406 2 жыл бұрын
Es cierto en la propia documentación se recomienda por seguridad.
@robertov2554
@robertov2554 2 жыл бұрын
X1.000.000, como es posible que enseñen esto...
@Vladimir-go5yn
@Vladimir-go5yn 2 жыл бұрын
Venía a decir esto. Si no es una WebApp de funcionamiento interno esto es terriblemente peligroso
@ftwtf
@ftwtf Жыл бұрын
has visto el video? el caso de uso que explican es para generar el pdf a partir de un enlace temporal transmitido vía email automáticamente. Además la recuperación de contraseñas funcionan del mismo modo que explican.
@JosueBasurto
@JosueBasurto Жыл бұрын
Algo que me gustaría ver a lo mejor es en un diagrama de secuencia como viaja la informacóon. Porque si bien lo hacen con Symfony, quiero aprender a usarlo en otras tecnologías. Y creo que es bueno bajarnos un poco en las capas OSI.
@moipcr
@moipcr Жыл бұрын
Todo esto se hace en la capa de aplicación solamente que posteriormente se va encapsulando a través de protocolos.
@DavidSamblas
@DavidSamblas 3 жыл бұрын
Muy chulo :)
@victorfernandogilcalderon6242
@victorfernandogilcalderon6242 2 жыл бұрын
Excelente explicación
3 жыл бұрын
15:12 Jajajajaja 🤣 muy bueno, Saludos...
@josepascualgimenomari600
@josepascualgimenomari600 2 жыл бұрын
Una duda, he leído por varios sitios, que no se recomienda tener almacenado el jwt en sesión. ¿Cómo hago si tengo que hacer múltiples peticiones desde el mismo cliente al mismo servidor? ¿Obtengo cada vez el token, antes de enviar la petición al mismo servidor? Otra duda, relacionado con lo anterior, ¿puedo generar un token jwt y utilizar el mismo token para validarme sobre diferentes microservicios invocados desde aplicación? Gracias por vuestros videos.
@NeoAres1
@NeoAres1 10 ай бұрын
Genial explicación. Una duda sí que tengo, y es acerca de hacer logout, ¿existe modo limpio (sin sobrecargar el server con una lista blanca o negra) para invalidar un token?
@gabrielchiron
@gabrielchiron 3 жыл бұрын
Monté en mi sistema lo mismo que JWT pero sin clave privada y publica. Basicamente encriptada en base64 (>.
@johnferla3110
@johnferla3110 2 жыл бұрын
el token se genera dependiendo la información que tengo en el JSON, si esa información es muy grande, el token será muy grande. Como minimizar el token?
@ervinsolanovargas8385
@ervinsolanovargas8385 3 жыл бұрын
Si logro interceptar un token, puedo leer el payload porque únicamente está codificado como base 64, podría crear una aplicación para que pruebe contraseñas hasta que me genere la misma encriptacion y así poder decir que descubrí la clave con la que se hizo ese token. ¿Entiendo que es posible, pero cuanto tiempo se tardaría en descubrir esa clave?
@wineloy
@wineloy 3 жыл бұрын
Pero el token viaja sobre una conexión encriptada (https) no podrías obtener al base 64
@AlexisUrueta
@AlexisUrueta 3 жыл бұрын
La firma es la parte segura, el resto con un simple decode público que la misma JWT tiene en su página puede ser visto. Si incluye buenas prácticas una firma está hecha con base en un array de 256 o 512 bytes, es muy complicado.
@fuckyeahgs
@fuckyeahgs 3 жыл бұрын
Podrias pillar tu propio token para descubrir la clave de generacion pero las claves son muy grandes y tardarias como 5000 años en conseguirla por fuerza bruta
@nicolaimartin7279
@nicolaimartin7279 3 жыл бұрын
Genial, me queda muchísimo más claro los JWT, gracias
@luisandraschnik3001
@luisandraschnik3001 Жыл бұрын
Hola! Tengo que realizar transferencias de información desde un aplicación web de un ERP (Tryton) contra un API de un portal web que se autentica por JWT, miles de requests, y estoy solicitando el token (vence en 3600 segundos) en cada request, sin guardar el token en ninguna variable. Estuve leyendo y parece que hay mucha controversia, algunos consideran que es mala práctica cachear el token ya sea guardarlo en memoria, en un archivo y reutilizarlo porque eso sería generar un estado o session, cuando el método es stateless, además de riesgos de seguridad de tipo CSRF, etc. En todo caso para guardar ese token debería generarlo fuera de la función que hace el request y pasarlo como argumento? Actualmente metí el pedido del token directamente dentro de la misma función que hace el request y me desentiendo de verificar si el toquen está vencido, ya que cada request tardará un segundo, pero no tengo idea de cuanto overhead estoy causando. Sdos
@gatocode316
@gatocode316 2 жыл бұрын
Muy útil, una pregunta, que librería o herramienta usan para generar los pdfs? Se hace todo el pdf con código o se puede cargar una especie de plantilla?
@carlosvillanuevaquito7289
@carlosvillanuevaquito7289 2 жыл бұрын
Te recomiendo github.com/mccarlosen/laravel-mpdf
@JoseLuis-sr4xw
@JoseLuis-sr4xw 2 жыл бұрын
Estoy aprendiendo aprendiendo a crear una Api rest con django rest framework, sino utilizo token deberia permitir el acceso del usuario mediante el tipico formulario de acceso donde le pido el usuario y contraseña, esos datos los mando al backend y busca en la base de dato si existe el usuario, si existe lo dejo pasar, si utilizo jwt ya no tendria que volver hacer las consultas a la base de datos cada vez que el usuario quiera acceder al programa, me ahorro la consulta a la base de datos, recibo el token del cliente y lo compruebo, no se si es obligatorio el uso de jwt si lo que quiero es hacer una api rest, lo siento estoy bastante perdido, si alguien me lo aclara, por cierto, utilizar este jwt no es gratuito ? cual deberia utilizar para python?
@Eduardo-gr2zo
@Eduardo-gr2zo 3 жыл бұрын
No han pensado en cambiar el formato de estar al lado a algo mas similar a algunos podcast donde se miran de frente, creo que mejoraría mucho el formato
@thelordking2505
@thelordking2505 3 жыл бұрын
Hay forma de comprar solo un curso como en otras plataformas? me interesa mucho el curso de symfony. saludos y un abrazo!
@CodelyTV
@CodelyTV 3 жыл бұрын
Buenas Yoel! Aquí un artículo al respecto 🙂👉 soporte.codely.tv/es/articles/4387186-puedo-comprar-un-curso-por-separado
@iamwildeofficial
@iamwildeofficial 3 жыл бұрын
En este vídeo veo 2 cosas: - Por una parte estáis ejecutando toda la lógica de negocio en un controlador. No sería mejor tener un servicio al que se le inyectasen esas dependencias y que el controlador simplemente fuera el punto de entrada? - Por otra parte, poner una validez a un token de 5 años... No sería mejor usar 1 hora y tener un endpoint para refrescar el token si ya a expirado?
@pellax
@pellax 3 жыл бұрын
Que pena no hayáis hecho el ejemplo con node y con strategies que me estuve rompiendo los cuernos dios sabe cuanto para luego acabar haciendo una versión funcional pero con muchos cabos sueltos.
@wineloy
@wineloy 3 жыл бұрын
Excelente video, una duda que distribución de Linux usa ?
@FabianD1991
@FabianD1991 3 жыл бұрын
Para los que dicen que PHP esta muerto.
@PildorasMusicales
@PildorasMusicales 3 жыл бұрын
Al final del video no sé por qué recordé esta caricatura: kzbin.info/www/bejne/gX3YlWWvlKqGi6s
@new_artiko
@new_artiko 3 жыл бұрын
T_T por que en php T_T
@S4MBENTZ
@S4MBENTZ 3 жыл бұрын
que lo queres en cobol? dios mio
@SkillisForNoobs
@SkillisForNoobs 3 жыл бұрын
.Net, node, Java. Hay para elegir 🤣
@aeapyps
@aeapyps 3 жыл бұрын
@@SkillisForNoobs y cuál es el problema con PHP amigo?
@carlosestebangil
@carlosestebangil Жыл бұрын
5:47 comansenwanjan
@carlosbarahona5962
@carlosbarahona5962 Ай бұрын
Parece un video de publicidad..
@CHEF_ALMERIA
@CHEF_ALMERIA 3 жыл бұрын
Para cuando cursos de iniciacion? Html Css Javascript Y.....
@hugonavarro1823
@hugonavarro1823 7 ай бұрын
No les entendí ni poniendo subtítulos
@jorgelujanm
@jorgelujanm 5 ай бұрын
Cómo se maneja un logout?
КАКУЮ ДВЕРЬ ВЫБРАТЬ? 😂 #Shorts
00:45
НУБАСТЕР
Рет қаралды 3,4 МЛН
managed to catch #tiktok
00:16
Анастасия Тарасова
Рет қаралды 45 МЛН
WHO CAN RUN FASTER?
00:23
Zhong
Рет қаралды 45 МЛН
JWT para Programar Backend Seguro
25:01
hdeleon.net
Рет қаралды 42 М.
Cómo evito usar JOINs
12:54
CodelyTV - Redescubre la programación
Рет қаралды 32 М.
[Técnicas] Formas de autenticación para tus API
11:32
Felipe M.
Рет қаралды 631
FastAPI JWT Tutorial | How to add User Authentication
20:27
Eric Roby
Рет қаралды 51 М.
Difference between cookies, session and tokens
11:53
Valentin Despa
Рет қаралды 619 М.
Por qué aprender Arquitectura de Software | #laFunción 9x10
53:06
CodelyTV - Redescubre la programación
Рет қаралды 65 М.
Entendiendo que es Oauth en 10 minutos
9:53
Alpha Developer
Рет қаралды 28 М.
Adding JWT Authentication & Authorization in ASP.NET Core
17:24
Nick Chapsas
Рет қаралды 205 М.
КАКУЮ ДВЕРЬ ВЫБРАТЬ? 😂 #Shorts
00:45
НУБАСТЕР
Рет қаралды 3,4 МЛН