logo oujood
🔍

Authentification API Django REST Framework

Protégez vos points d'entrée et contrôlez qui peut accéder à vos services web.

OUJOOD.COM

Sécuriser une API n'est pas tout à fait la même chose que sécuriser un site web classique. Sur un site, on utilise des sessions et des cookies gérés par le navigateur. Pour une API, surtout si elle est consommée par une application mobile ou un autre serveur, on préfère souvent utiliser des jetons (Tokens). C'est une sorte de clé numérique que le client envoie à chaque requête pour prouver son identité.

Session vs Token : Quel choix faire ?

Django REST Framework permet d'utiliser plusieurs méthodes en même temps. La SessionAuthentication est parfaite si votre API est utilisée par votre propre site web (en AJAX par exemple). En revanche, pour une application Android ou iOS, la TokenAuthentication est le standard. Le serveur génère un jeton unique pour l'utilisateur, et ce dernier le stocke localement pour l'inclure dans les en-têtes de ses futurs appels.

Configuration globale dans settings.py

Je vous conseille de définir une politique par défaut pour tout votre projet. Cela évite d'oublier de protéger une vue par mégarde. Dans votre fichier de configuration, créez un dictionnaire REST_FRAMEWORK pour lister les méthodes autorisées.

  📋 Copier le code

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
    ],
}

Le fonctionnement du Token

Une fois activé, l'utilisateur doit envoyer son jeton dans l'en-tête HTTP Authorization. Le format est strict : le mot Token suivi d'un espace, puis la clé. Si le jeton est valide, Django remplit automatiquement l'objet request.user avec les informations de l'utilisateur, exactement comme dans une vue classique.

  📋 Copier le code

Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

L'authentification permet de savoir qui appelle l'API. Mais cela ne dit pas si cette personne a le droit de voir ou de modifier la ressource demandée. C'est ici qu'interviennent les permissions API, le sujet de notre prochaine leçon.

Par carabde | Mis à jour le 08/05/2026