Jetons d’actualisation et expiration
Renouvelez les jetons d’accès sans nouvelle connexion.
Jetons d’actualisation et expiration est une leçon Flask Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Flask Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Flask Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Why Tokens Expire
A stolen token is dangerous only while it works. Giving every access token a short expiry shrinks that window of risk. ⏳
The exp Claim
Expiry lives in the token's exp claim, a timestamp. Once the clock passes it, the token is rejected no matter what.
Set the Lifetime
Control how long access tokens last with JWT_ACCESS_TOKEN_EXPIRES. A short span like 15 minutes is a sensible default.
from datetime import timedelta
app.config["JWT_ACCESS_TOKEN_EXPIRES"] = timedelta(minutes=15)The Re-Login Problem
Short expiry is safe but annoying if users must type their password every 15 minutes. The refresh token solves exactly this.
Two Tokens, Two Jobs
A short access token calls your API; a long-lived refresh token does nothing but request fresh access tokens.
Issue Both at Login
At login, mint an access token and a refresh token together, then return both to the client.
from flask_jwt_extended import create_refresh_token
rt = create_refresh_token(identity=user.id)A Refresh Endpoint
Add a /refresh route guarded by jwt_required(refresh=True) so only a valid refresh token can reach it.
@app.post("/refresh")
@jwt_required(refresh=True)
def refresh():
...Hand Back a New Access Token
Inside /refresh, read the identity and mint a brand-new access token. The user keeps going without retyping a password. 🔄
new = create_access_token(identity=get_jwt_identity())
return {"access_token": new}Refresh Tokens Live Longer
Set JWT_REFRESH_TOKEN_EXPIRES to days or weeks. It is exposed less often, so a longer life is an acceptable trade.
app.config["JWT_REFRESH_TOKEN_EXPIRES"] = timedelta(days=30)Store the Refresh Token Safely
Because it is powerful, keep the refresh token in secure storage, never in plain JavaScript-readable space, and send it only to /refresh.
Revoking Tokens
To truly log someone out, add a blocklist of token ids the server refuses. This is the one bit of state stateless auth sometimes needs.
Quick Check
Recall the job each token type does.
Recap
Keep access tokens short and pair them with a long-lived refresh token that buys new ones at /refresh. Add a blocklist to revoke. ✅
Questions Fréquemment Posées
La leçon « Jetons d’actualisation et expiration » est-elle gratuite ?
Oui — le texte complet de « Jetons d’actualisation et expiration » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Flask Academy, passe à CoddyKit PRO. Le cours Flask Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Jetons d’actualisation et expiration » ?
Renouvelez les jetons d’accès sans nouvelle connexion. Tu pratiques Flask Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Flask Academy ?
Aucune expérience préalable n'est requise. Flask Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Jetons d’actualisation et expiration » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Flask Academy ?
Oui. Chaque leçon Flask Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Sessions ou jetons sans état
- Émettre des jetons d’accès lors de la connexion
- Protéger les points d’entrée avec jwt_required
- Jetons d’actualisation et expiration