Vue d'ensemble

Flask-JWT-Extended 4.4, publié le 1er avril 2022, ajoute le support des claims additionnels dans les tokens JWT.

Fonctionnalités principales

Claims additionnels

Les claims additionnels permettent d'inclure des données personnalisées dans les tokens JWT, comme les rôles et permissions de l'utilisateur.

python
from flask import Flask
from flask_jwt_extended import (
    JWTManager, create_access_token, get_jwt
)

app = Flask(__name__)
app.config['JWT_SECRET_KEY'] = 'secret'
jwt = JWTManager(app)

# Token avec claims additionnels
token = create_access_token(
    identity='alice',
    additional_claims={'role': 'admin', 'dept': 'IT'},
)

Vérification des claims

Les claims peuvent être vérifiés dans les routes protégées pour implémenter un contrôle d'accès basé sur les rôles.

python
from flask_jwt_extended import jwt_required, get_jwt

@app.route('/admin')
@jwt_required()
def admin_page():
    claims = get_jwt()
    if claims.get('role') != 'admin':
        return {'error': 'Accès interdit'}, 403
    return {'message': 'Bienvenue admin'}

Sources