Autenticación clásica vs. moderna: OAuth y JWT

2/11
Recursos

Aportes 14

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

En el curso de autenticación con Jason web Tokens de Guillermo el que se encuentra en la ruta de escuela de JavaScript.

se pueden leer en los comentarios ... (Y es que me fijo en los comentarios precisamente por si alguien dejó algún aporte o hay alguna pregunta de lo que puedo apoyar)

clase 1 .- ah es Guillermo este curso que está bueno.

clase 10 .- Éste maestro solamente escribe y no explica nada

clase 20 .- qué malo es este instructor

(Los números de las clases uno al azar)

personalmente después de tomar tres cuartas partes del curso desistí y me fui a leer la documentación.

yo nunca había visto un curso con tantos comentarios negativos.

la aplicación que están creando la ejecuara por primera vez (si no me equivoco) hasta la clase número 22

Los que se quejan del curso de Guillermo es porque están acostumbrados a cursos prácticos. El curso de Guillermo es más teoría, lo cuál es necesario para poder entender el #UnderTheHood que siempre explica Jonathan.
Yo me dí la oportunidad de tomarlo y aprender lo más que se pueda, si bien hay muchos profes en Platzi que aún están adquiriendo los skills de la enseñanza, perfectamente puedes aprender de todo lo que hay en ellos. Recordemos que todos estamos aprendiendo en esto juntos.

👁 Autenticación clásica vs. moderna: OAuth y JWT

Apuntes

Autenticación ≠ Autorización

  • La autenticación se encarga de decidir si el usuario puede ingresar o no
  • La autorización controla los permisos de cada usuario

¿Cómo saber si quien visita tu app está loggeado o no?

  • HTTP no tiene estado, lo que significa que debemos agregar las capas adicionales para saber esta información
    • Para ello debemos guardar la información en algún lugar para saber si es un visitante o un usuario con ciertos permisos, este concepto es conocido como “Sesión”

Autenticación clásica

  • Servidores clásicos como PHP con Symfony o Python con Django

  • Se crea un objeto en el servidor (sesión) que persiste en todos los request del cliente

  • También una cookie HTTPOnly que apunta a esa sesión

  • Si el usuario está inactivo, la sesión se elimina en el servidor

  • Si la sesión aún existe, y hay peticiones del cliente, la sesión se renueva

  • Estos conceptos son conocidos como un patrón “Stateful”

    • Guardamos un estado
    • Nuestro tiene saber lo que pasa
    • Por cada usuario que haga login, nuestro servidor tiene un objeto que se guarda con una sesión para cada usuario

Autenticación por tokens

  • Se crea un token, que es firmado por el servidor y enviado al cliente.

  • El cliente puede leer algunas partes del token*, pero no puede crear nuevos.

  • El cliente envía el token en cada petición. El servidor verifica el token para otorgar acceso.

  • Este patrón de actividades es conocido como “Stateless”

    • El servidor no cuenta con un registro de todos los tokens creados
    • El servidor no sabe cuantos tokens hay afuera del mismo
    • Su mecanismo se encarga de comprobar correctamente y que corresponda con la información que el servidor creo al principio.

Beneficios

  • Más fácil de escalar
    • No nos preocupamos del espacio en memoria
  • Mayor versatilidad y flexibilidad para trabajar con varios servidores y microservicios.
    • Gracias a este concepto se pueden crear mecanismos como OAuth
  • OAuth hace el que el usuario no nos tenga que dar su usuario y contraseña, sino que pueda autenticar con otras aplicaciones como:
    • Google
    • Github
    • Twitter

“OAuth es un estándar abierto para delegación de acceso a otras aplicaciones”

Vamos

Muy bueno

La autenticación moderna puede funcionar mejor en Nextjs a diferencia de la clásica ya que las SPA no siempre recargan la página. Aún asi creo que puede ser un poco complejo actualizar los permisos en la autenticación moderna ya que habria que modificar el token 😃

Me gusta más basada en Tokens

Creo que seria mejor una autenticación basada en tokens para NextJs

Si quieres saber mas de los JWT puedes visitar sitio
https://jwt.io/

Hola

A

Felicidades

Perfecto