Django, un framework d'application Web Python, fournit un système d'authentification et d'autorisation intégré qui permet aux développeurs de créer des applications Web sécurisées et fiables. Ce chapitre détaillera ce système et comment il peut être personnalisé pour répondre aux besoins de différents projets.
Authentification
L'authentification est le processus de vérification de l'identité d'un utilisateur. En d’autres termes, c’est la manière dont le système détermine qui est l’utilisateur. Dans Django, l'authentification est effectuée à l'aide du système d'authentification intégré.
Le système d'authentification de Django fournit un modèle User qui représente les utilisateurs du système. Ce modèle comporte des champs pour stocker des informations telles que le nom d'utilisateur, le mot de passe, l'e-mail, le prénom et le nom. De plus, le modèle Utilisateur dispose de méthodes pour vérifier le mot de passe, modifier le mot de passe et vérifier que le compte utilisateur est actif.
Pour authentifier un utilisateur, Django fournit la fonction Authenticate(). Cette fonction accepte un nom d'utilisateur et un mot de passe et renvoie un objet User si l'authentification réussit. Sinon, il renvoie Aucun.
Exemple d'authentification
à partir de django.contrib.auth importer authentifier utilisateur = authentifier (nom d'utilisateur = 'john', mot de passe = 'secret') si l'utilisateur n'est pas Aucun : # Un backend a authentifié les informations d'identification autre: # Aucun backend n'a authentifié les informations d'identification
Autorisation
L'autorisation est le processus permettant de déterminer ce qu'un utilisateur authentifié est autorisé à faire. Dans Django, l'autorisation est effectuée à l'aide du système d'autorisations intégré.
Le système d'autorisations de Django fournit un moyen de définir ce que les utilisateurs peuvent et ne peuvent pas faire. Les autorisations sont définies en termes de modèles et d'actions. Par exemple, vous pouvez définir une autorisation qui permet à un utilisateur d'ajouter, de modifier ou de supprimer des instances d'un modèle spécifique.
Les autorisations sont stockées dans le modèle d'autorisation, qui comporte des champs pour le nom de l'autorisation, le contenu du type d'autorisation et le modèle auquel l'autorisation s'applique. Le modèle Utilisateur a une relation plusieurs-à-plusieurs avec le modèle Autorisation, ce qui signifie qu'un utilisateur peut disposer de plusieurs autorisations et qu'une autorisation peut être attribuée à plusieurs utilisateurs.
Exemple d'autorisation
à partir de django.contrib.auth.models importer l'utilisateur, l'autorisation à partir de django.contrib.contenttypes.models, importez ContentType à partir de myapp.models importer BlogPost content_type = ContentType.objects.get_for_model (BlogPost) autorisation = Permission.objects.create( nom de code='can_publish', name='Peut publier des messages', content_type=content_type, ) utilisateur = Utilisateur.objects.get(nom d'utilisateur='john') user.user_permissions.add(autorisation)
De plus, Django fournit la fonction has_perm() qui vérifie si un utilisateur dispose d'une autorisation spécifique. Cette fonction accepte le nom de l'autorisation et renvoie True si l'utilisateur dispose de l'autorisation et False sinon.
Exemple de vérification des autorisations
si user.has_perm('myapp.can_publish'): # L'utilisateur a la permission autre: # L'utilisateur n'a pas l'autorisation
Conclusion
Le système d'authentification et d'autorisation de Django est un outil puissant qui permet aux développeurs de créer des applications Web sécurisées et fiables. Avec lui, vous pouvez contrôler qui a accès à votre application et ce qu'ils peuvent faire. Et grâce à la flexibilité de Django, vous pouvez personnaliser ce système en fonction des besoins de votre projet.