Bienvenida e introducción

1

Qué aprenderás sobre autenticación con OAuth

2

Stack de seguridad para aplicaciones modernas

3

Autenticación

4

Autorización

JSON Web Tokens

5

JSON Web Tokens

6

Autenticación tradicional vs JWT

7

Configuración inicial de los proyectos

8

Firmando un JWT

9

Verificando nuestro JWT firmado y buenas practicas con JWT

10

Server-Side vs Client-Side sessions

11

Protegiendo nuestros recursos con JWT

12

Habilitando CORS en nuestro servidor

13

Profundizando el concepto de JWKS

OAuth 2.0

14

Cómo elegir el flujo adecuado para OAuth 2.0

15

¿Qué es OAuth 2.0?

16

Conociendo el API de Spotify

17

Creando los clientes de Spotify y servicios iniciales

18

Implementando Authorization Code Grant

19

Usando nuestro access token para obtener nuestros recursos

20

Implementando Implicit Grant

21

Implementando nuestro servicio de autenticación

22

Modificando nuestro Layout

23

Implementando Client Credentials Grant

24

Implementando Resource Owner Password Grant

25

Implementando Authorization Code Grant (PKCE)

Open ID Connect

26

¿Qué es OpenID Connect?

27

Implementando OpenID Connect

Preocupaciones con JWT y OAuth 2.0

28

¿Cuáles son las preocupaciones con JWT?

29

¿Cuáles son las preocupaciones con OAuth 2.0?

Haciendo uso de Auth0

30

¿Qué es Auth0?

31

Auth0 Lock y auth0.js

32

Universal Login

33

Social Login con Auth0

34

Custom Social connection con Spotify

35

Multifactor authentication

36

Authorization Extension en Auth0

Consideraciones para producción

37

Buenas prácticas para el despliegue en producción

38

Uso de diferentes tenants para producción con Auth0

Cierre del curso

39

Cierre del curso

Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Autenticación tradicional vs JWT

6/39
Recursos

La autenticación tradicional funciona creando un espacio en memoria con un id para identificar a los usuarios activos, estos IDs se almacenan en cookies (información que enviamos o modificamos entre servidores y navegadores) para identificar si los usuarios están o no autenticados. Todas las cookies tienen un tiempo límite, es decir, después de cierto tiempo la cookie se borra y la sesión termina, el usuario debe volver a autenticarse.

El problema de este tipo de autenticación es que no funciona con _Single Page Applications (aplicaciones construidas sobre una única página), ya que no refrescamos el navegador para acceder a nueva información o verificar la autenticación de los usuarios, no hay forma de acceder a las cookies a medida que los usuarios interactúan con la aplicación. También tenemos problemas cuando construimos aplicaciones con arquitecturas basadas en microservicios, cualquier control de permisos requiere volver a realizar peticiones en la base de datos.

La autenticación con tokens funciona generando tokens con la identificación y los permisos de cada usuario, estos tokens son enviados y almacenados desde el cliente, así que, siempre que nuestras aplicaciones necesitan verificar los permisos de los usuarios simplemente necesitan validar los tokens. Gracias a este tipo de autenticación NO necesitamos un servicio de backend para almacenar las sesiones de autenticación de los usuarios, solo con guardar y validar los tokens podemos controlar los permisos para cada usuario.

Aportes 13

Preguntas 5

Ordenar por:

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

IMPORTANTE: Las cookies no se llaman como se llaman por las galletas esas adictivas de navidad con chispas de chocolate y sabores deliciosos. NO. Su nombre viene de las galletas de la fortuna que tienen un mensaje adentro intentando adivinar tu futuro, algo más parecido a la funcionalidad de las cookies en la comunicación de servidores y navegadores. #Epic. ✌️

Más adelante, en la clase Firmando un JWT, vamos a ver mucho mejor (con un ejemplo práctico) cómo crear un JWT y cómo funciona su validación 👌.

Resumiendo un poco, toda la información que viaja en el token (lo que va adentro del header y del payload) es completamente visible para cualquier persona que acceda al token 😳😱 (podemos probar copiando y pegando uno en el debugger de https://jwt.io 😮). Cualquier usuario, bueno o malo, mortal o máquina, puede ver y “robar” la información delicada que se encuentre por ahí. El chiste de los tokens es que el servidor NO les permite realizar ninguna acción si cambian el contenido del token, es decir, aunque podemos “robar” la información del token, no podemos ejecutar ninguna acción del servidor a menos que tengamos las llaves secretas 😌.

Aún más resumido lo entienden en esta parte de la clase de más adelante (los últimos minutos): https://platzi.com/clases/1439-autenticacion-oauth/15812-firmando-un-jwt/?time=851.

Que interesante el origen del nombre de la cookie! jeje

Por eso anteriormente era mucho más fácil autenticarse como otra persona en servicios de mensajería como messenger en su época. xD

Lo que no pillo es, con tu token tienes que hacer una peticion al servidor para que te verifique si es valido igual no? entonces el proceso no es el mismo k con la cookie? lo unico que cambia es que no tienes un campo en la bd con la sesion, xk simplemente lo sacas con el secret y el token, pero la peticion a backend la haces igual.
Ademas las SPA tienen estado, via redux u otros, asi que cuando el servidor resolviera, si no hay permisos puede actualizar el contenido en cualquier momento.

Muchas gracias.

Süper interesante!!

Muy buena explicación

buena ilusracion entre json y token tradicional

Excelente comparativa. Muy claro en concepto.

Me parece interesante lo que dijo, que si ya enviar el token, podemos confiar que todo esta bien! Veamos cómo es esto!

Entonces si quiero terminar con la sesión como funciona??

Las paginas single page si hacen request al servidor…