Server-side vs Client-side sessions
Clase 8 de 39 • Curso de Autenticación con Passport.js 2019
Contenido del curso
Conocer qué son los JSON Web Tokens
Entender cómo funcionan las cookies
Implementar autenticación en Express usando Passport.js
- 12

Arquitectura del proyecto Platzi Video
05:10 min - 13

Agregando la colección de usuarios
06:20 min - 14

Agregando la colección de películas de usuario
11:23 min - 15

Implementando el POST y DELETE de las películas de usuario
05:54 min - 16

Cómo conectarnos a la base de datos
00:50 min - 17

Configuración de Passport.js
08:29 min - 18

Implementación de BasicStrategy con Passport.js
05:31 min - 19

Implementación de Strategy y ExtractJwt con Passport.js
05:02 min - 20

Implementación de nuestro Sign-in
12:28 min - 21

Implementación de nuestro Sign-up
05:09 min - 22

Protegiendo nuestras rutas con Passport.js
04:47 min - 23

Middleware para el manejo de scopes
09:48 min - 24

Configuración del server render
03:04 min - 25

Comunicación máquina a máquina
09:24 min - 26

Implementando recordar sesión
01:19 min - 27

Implementación de las rutas de las películas de usuario
09:28 min
Entender qué es OAuth 2.0 y OpenID Connect
Implementar autenticación con redes sociales
- 29

Cómo crear un proyecto en Google API para hacer autenticación con 0Auth 2.0
00:42 min - 30

Implementando 0Auth2.0 con Google
11:43 min - 31

Implementando Sign Provider en nuestra API
07:10 min - 32

Autenticación con Google usando OpenID Connect
01:38 min - 33

Cómo crear una cuenta de desarrollador con Twitter
01:02 min - 34

Autenticación con Twitter
10:50 min - 35

Autenticación con Facebook
01:35 min
Asegurar tu aplicación de Express
Sesiones del lado del servidor vs sesiones del lado del cliente
¿Qué es una sesión?
En terminos generales una sesion es una manera de preservar un estado deseado.
¿Qué es una sesion del lado del servidor?
La sesión en el lado del servidor suele ser una pieza de información que se guarda en memoria o en una base de datos y esta permite hacerle seguimiento a la información de autenticación, con el fin de identificar al usuario y determinar cuál es el estado de autenticación. Mantener la sesión de esta manera en el lado del servidor es lo que se considera "stateful", es decir que maneja un estado.
¿Qué es una sesión del lado del cliente?
Las SPA (Single-page apps) requieren una manera de saber si el usuario esta autenticado o no. Pero esto no se puede hacer de una manera tradicional porque suelen ser muy desacopladas con el backend y no suelen refrescar la página como lo hacen las aplicaciones renderizadas en el servidor.
JWT (JSON Web Token) es un mecanismo de autenticación sin estado, lo que conocemos como "stateless". Lo que significa que no hay una sesión que exista del lado del servidor.
La manera como se comporta la sesión del lado del cliente es:
- Cuando el usuario hace "login" agregamos una bandera para indicar que lo esta.
- En cualquier punto de la aplicación verificamos la expiración del token.
- Si el token expira, cambiamos la bandera para indicar que el usuario no está logueado.
- Se suele chequear cuando la ruta cambia.
- Si el token expiró lo redireccionamos a la ruta de "login" y actualizamos el estado como "logout".
- Se actualiza la UI para mostrar que el usuario ha cerrado la sesión.