Verificando nuestro JWT firmado y buenas practicas con JWT
Clase 9 de 39 • Curso de Autenticación con OAuth
Contenido del curso
- 5

JSON Web Tokens
08:34 - 6

Autenticación tradicional vs JWT
08:08 - 7

Configuración inicial de los proyectos
08:22 - 8

Firmando un JWT
15:23 - 9

Verificando nuestro JWT firmado y buenas practicas con JWT
11:43 - 10

Server-Side vs Client-Side sessions
05:23 - 11

Protegiendo nuestros recursos con JWT
04:38 - 12
Habilitando CORS en nuestro servidor
01:11 - 13
Profundizando el concepto de JWKS
02:24
- 14

Cómo elegir el flujo adecuado para OAuth 2.0
02:54 - 15

¿Qué es OAuth 2.0?
00:15 - 16

Conociendo el API de Spotify
07:29 - 17

Creando los clientes de Spotify y servicios iniciales
16:46 - 18

Implementando Authorization Code Grant
14:54 - 19

Usando nuestro access token para obtener nuestros recursos
07:12 - 20

Implementando Implicit Grant
09:11 - 21

Implementando nuestro servicio de autenticación
08:46 - 22

Modificando nuestro Layout
09:18 - 23

Implementando Client Credentials Grant
09:52 - 24
Implementando Resource Owner Password Grant
01:46 - 25
Implementando Authorization Code Grant (PKCE)
02:26
Gracias a la librería jsonwebtokens también podemos validar nuestros JWT utilizando el método jwt.verify(), en esta clase vamos a crear un nuevo endpoint (/api/auth/verify) donde debemos devolver el el nombre de usuario que encontramos si el token que verificamos es valido. En caso de que el token no sea valido, vamos a devolver un error utilizando el método next() de la librería express.
Buenas prácticas al utilizar JWT:
- Nunca transmitir información sensible: Recuerda que los JWT son completamente decodificables, su seguridad no esta en la encripción de datos que transmitimos por los tokens sino en la validación frente a nuestros servidores. Toda la información que transmitimos por JWT debe ser tratada como si fuera enviada por texto plano.
- Mantener los tokens pequeños: Los JWT NO son un medio de transmisión de datos, su única responsabilidad es verificar la autenticación de nuestros usuarios. para obtener la información de nuestros usuarios debemos crear nuevos endpoints en la API de nuestra aplicación que, por su puesto, solo deben ser disponibles si enviamos un token valido.
- Configurar tiempos de vida de muy cortos: El tiempo de vida de nuestros tokens son el tiempo en que podemos utilizarlos, la recomendación son máximo 15 minutos. Entre más grande sea este tiempo, más tiempo tienen quienes quieran cometer ataques a nuestra aplicación.
- Crear JWT opacos: Nunca es una buena idea decodificar nuestros tokens desde el cliente o frontend de nuestra aplicación, recuerda que este código es completamente público y corremos el riesgo de que alguien más acceda a las llaves privadas de nuestra aplicación.