Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Middleware d'authentification par header
Dans les APIs, l'authentification se fait souvent via un header HTTP. Le client envoie un header Authorization avec un token, et le serveur vérifie ce token pour identifier l'utilisateur.
En Django, les headers HTTP sont accessibles via request.META. Les headers sont prefixes par HTTP_ et convertis en majuscules. Par exemple, le header Authorization devient request.META.get('HTTP_AUTHORIZATION').
Pour les tests, on peut aussi les definir directement avec request.META['HTTP_AUTHORIZATION'] = 'Token abc123'.
Écris un middleware TokenAuthMiddleware (new style) qui : - Recoit un paramètre supplémentaire valid_tokens dans __init__ (un dictionnaire token vers nom d'utilisateur) - Dans __call__, vérifie le header HTTP_AUTHORIZATION - Si le header existe et commence par 'Token ', extrait le token et cherche dans valid_tokens - Si le token est valide, ajoute request.user_name avec le nom d'utilisateur et request.is_authenticated = True - Si le token est invalide ou absent, ajoute request.is_authenticated = False - Dans tous les cas, continue la chaine et retourne la réponse