Flask Academy · Lección

Tokens de actualización y caducidad

Rote los tokens de acceso sin volver a iniciar sesión.

Lección 4 de 413 pasos

Tokens de actualización y caducidad es una lección gratuita de Flask Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Flask Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Flask Academy incluye 4 lecciones en total.

Por qué caducan los tokens

Un token robado solo es peligroso mientras funciona. Asignar una caducidad breve a cada token de acceso reduce ese período de riesgo. ⏳

La declaración exp

La caducidad se encuentra en la declaración exp del token, que contiene una marca de tiempo. Cuando el reloj la supera, el token se rechaza sin excepciones.

Establezca la duración

Controle cuánto duran los tokens de acceso con JWT_ACCESS_TOKEN_EXPIRES. Un período breve, como 15 minutos, es un valor predeterminado razonable.

from datetime import timedelta
app.config["JWT_ACCESS_TOKEN_EXPIRES"] = timedelta(minutes=15)

El problema de volver a iniciar sesión

Una caducidad breve es segura, pero resulta molesta si los usuarios deben escribir su contraseña cada 15 minutos. El refresh token resuelve precisamente este problema.

Dos tokens, dos funciones

Un token de acceso breve realiza llamadas a su API; un refresh token de larga duración no hace más que solicitar nuevos tokens de acceso.

Emita ambos al iniciar sesión

Al iniciar sesión, genere juntos un token de acceso y un refresh token y devuelva ambos al cliente.

from flask_jwt_extended import create_refresh_token
rt = create_refresh_token(identity=user.id)

Un endpoint de actualización

Añada una ruta /refresh protegida por jwt_required(refresh=True) para que solo pueda acceder a ella un refresh token válido.

@app.post("/refresh")
@jwt_required(refresh=True)
def refresh():
    ...

Devuelva un nuevo token de acceso

Dentro de /refresh, lea la identidad y genere un access token completamente nuevo. El usuario puede continuar sin volver a escribir la contraseña. 🔄

new = create_access_token(identity=get_jwt_identity())
return {"access_token": new}

Los refresh tokens duran más

Establezca JWT_REFRESH_TOKEN_EXPIRES en días o semanas. Se expone con menos frecuencia, por lo que una duración mayor es un compromiso aceptable.

app.config["JWT_REFRESH_TOKEN_EXPIRES"] = timedelta(days=30)

Almacene el refresh token de forma segura

Como es muy potente, conserve el refresh token en un almacenamiento seguro, nunca en un espacio que JavaScript pueda leer directamente, y envíelo únicamente a /refresh.

Revocación de tokens

Para cerrar realmente la sesión de alguien, añada una blocklist con los identificadores de tokens que el servidor rechazará. Este es el único estado que a veces necesita la autenticación sin estado.

Comprobación rápida

Recuerde la función que desempeña cada tipo de token.

Resumen

Mantenga breves los tokens de acceso y combínelos con un refresh token de larga duración que obtenga otros nuevos en /refresh. Añada una blocklist para revocarlos. ✅

Gratis para empezar

Aprende Python con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «Tokens de actualización y caducidad» es gratis?

Sí — el texto completo de «Tokens de actualización y caducidad» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Flask Academy, actualiza a CoddyKit PRO. El curso de Flask Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Tokens de actualización y caducidad»?

Rote los tokens de acceso sin volver a iniciar sesión. Practicas Flask Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Flask Academy?

No se requiere experiencia previa. Flask Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Tokens de actualización y caducidad»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Flask Academy?

Sí. Cada lección de Flask Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Sesiones frente a tokens sin estado
  2. Emita tokens de acceso al iniciar sesión
  3. Proteja endpoints con jwt_required
  4. Tokens de actualización y caducidad
← Volver a Flask Academy