Tokens de actualización y caducidad
Rote los tokens de acceso sin volver a iniciar sesión.
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. ✅
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
- Sesiones frente a tokens sin estado
- Emita tokens de acceso al iniciar sesión
- Proteja endpoints con jwt_required
- Tokens de actualización y caducidad