L'authentification des utilisateurs est un aspect crucial pour toute application Web qui souhaite protéger certaines ressources et autoriser l'accès uniquement aux utilisateurs autorisés. Dans Django, l'authentification des utilisateurs est facilitée par sa bibliothèque d'authentification intégrée. Dans cette section, nous explorerons comment créer un projet Django incluant l'authentification des utilisateurs.
Pour commencer, nous devons d'abord installer Django. Cela peut être fait en utilisant pip, le programme d'installation du package Python. Dans le terminal, exécutez simplement la commande 'pip install django'. Une fois installé, nous pouvons créer un nouveau projet Django en exécutant 'django-admin startproject myproject'.
Une fois le projet créé, nous devons créer une nouvelle application pour gérer l'authentification des utilisateurs. Cela peut être fait en exécutant « python manage.py startapp identifier » à la racine du projet. Cela créera un nouveau dossier appelé « authentification » avec plusieurs fichiers qui seront utilisés pour configurer l'application de l'authentification.
Ensuite, nous devons ajouter la nouvelle application à la liste des INSTALLED_APPS dans settings.py. Cela permettra à Django de reconnaître l'application d'authentification et d'inclure ses fonctionnalités dans le projet. La liste INSTALLED_APPS devrait désormais inclure « authentification ».
Ensuite, nous devons configurer l'authentification des utilisateurs. Django est livré avec un système d'authentification intégré que nous pouvons utiliser. Pour cela, nous devons ajouter la ligne suivante au fichier settings.py : 'AUTH_USER_MODEL = 'authentication.User'.
Cela indique à Django d'utiliser le modèle utilisateur défini dans l'application d'authentification pour toutes les opérations d'authentification. Nous devons maintenant créer ce modèle utilisateur. Dans models.py dans l'application d'authentification, ajoutez le code suivant :
Cela crée un modèle utilisateur qui hérite de AbstractUser, un modèle utilisateur de base qui inclut des champs tels que le nom d'utilisateur, le mot de passe, l'e-mail, le prénom, le nom, etc. Nous pouvons ajouter des champs supplémentaires si nécessaire, mais pour cet exemple, gardons les choses simples.
Maintenant, nous devons créer les vues pour gérer la connexion et la déconnexion. Dans vues.py dans l'application d'authentification, ajoutez le code suivant :
Ces vues gèrent respectivement la connexion et la déconnexion. La vue de connexion vérifie si la méthode de requête est POST. Si tel est le cas, il tente d'authentifier l'utilisateur avec le nom d'utilisateur et le mot de passe fournis. Si l'authentification réussit, l'utilisateur est connecté et redirigé vers la page d'accueil. Si l'authentification échoue, une réponse HTTP avec le message « Informations d'identification invalides » est renvoyée. Si la méthode de requête n'est pas POST, la page de connexion est rendue.
La vue de déconnexion déconnecte simplement l'utilisateur et le redirige vers la page de connexion.
Maintenant, nous devons créer les modèles de connexion. Créez un nouveau dossier appelé « modèles » dans le dossier de l'application d'authentification et, à l'intérieur, créez un nouveau dossier appelé « authentification ». Dans ce dossier, créez un nouveau fichier appelé 'login.html' et ajoutez le code suivant :
Connexion
{% bloc de fin %}Il s'agit d'un modèle de connexion simple qui étend le modèle base_generic.html et remplace le bloc de contenu par un formulaire de connexion.
Enfin, nous devons ajouter les URL pour les vues de connexion et de déconnexion. Dans urls.py dans l'application d'authentification, ajoutez le code suivant :
Cela ajoute respectivement les URL des vues de connexion et de déconnexion. Maintenant, si nous exécutons le serveur de développement Django avec « python manage.py runserver » et naviguons vers « http://localhost:8000/login », nous devrions voir la page de connexion et pouvoir nous connecter avec un utilisateur existant. p>
En bref, l'authentification des utilisateursos est une partie importante de toute application Web, et Django facilite la mise en œuvre de cette fonctionnalité. Avec le système d'authentification intégré de Django, nous pouvons facilement sécuriser les ressources et autoriser l'accès uniquement aux utilisateurs autorisés.