15.13. Modèles dans Django : authentification et autorisation

Página 87

15.13. Modèles dans Django : authentification et autorisation

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.

Répondez maintenant à l’exercice sur le contenu :

Quel est le rôle du système d'authentification et d'autorisation intégré à Django ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

8815.14. Modèles dans Django : Tests dans Django

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte