OUJOOD.COM
Une fois que vos utilisateurs sont inscrits, ils doivent pouvoir accéder à leur espace. Django propose des outils clés en main pour gérer ces sessions sans que vous ayez à manipuler manuellement les cookies ou la base de données. Tout se passe via le module django.contrib.auth.
La fonction de connexion (Login)
Pour connecter un utilisateur, Django utilise principalement deux fonctions : authenticate() pour vérifier les identifiants et login() pour créer la session. Pour vous simplifier la vie, il existe un formulaire prêt à l'emploi : AuthenticationForm.
from django.contrib.auth import login, authenticate
from django.contrib.auth.forms import AuthenticationForm
from django.shortcuts import render, redirect
def connexion_view(request):
if request.method == 'POST':
form = AuthenticationForm(request, data=request.POST)
if form.is_valid():
user = form.get_user()
login(request, user) # La session est créée ici
return redirect('accueil')
else:
form = AuthenticationForm()
return render(request, 'login.html', {'form': form})
La fonction de déconnexion (Logout)
Déconnecter un utilisateur est encore plus simple. Il suffit d'appeler la fonction logout(). Cela détruit la session actuelle et nettoie les cookies côté client. Je vous conseille de toujours rediriger l'utilisateur vers la page d'accueil ou la page de connexion après cette action.
from django.contrib.auth import logout
from django.shortcuts import redirect
def deconnexion_view(request):
logout(request)
return redirect('login')
Redirections automatiques
Pour éviter de répéter l'URL de redirection dans chaque vue, vous pouvez configurer votre fichier settings.py. Ajoutez LOGIN_REDIRECT_URL = 'nom_de_votre_vue' pour définir où l'utilisateur atterrit après s'être connecté. C'est une bonne pratique qui rend votre code plus propre.
Si vous voulez sécuriser davantage vos formulaires lors de la connexion, n'oubliez pas de consulter la page sur la protection CSRF Django.
Par carabde | Mis à jour le 08/05/2026