Maison >développement back-end >Tutoriel Python >Système d'authentification des utilisateurs Django (1) Objet utilisateur

Système d'authentification des utilisateurs Django (1) Objet utilisateur

黄舟
黄舟original
2016-12-23 17:41:071312parcourir

Objet utilisateur

L'objet utilisateur est le cœur du système d'authentification. Les objets utilisateur sont généralement utilisés pour représenter les utilisateurs d'un site Web et prendre en charge, par exemple, le contrôle d'accès, les utilisateurs enregistrés, l'association de créateurs et de contenu, etc. Il n'y a qu'une seule classe d'utilisateurs dans le cadre d'authentification Django. Par exemple, les superutilisateurs (« superutilisateurs ») ou (« personnel ») sont simplement les mêmes objets utilisateur avec des attributs différents.

Champs par défaut Champs

nom d'utilisateur

Nom d'utilisateur, champ obligatoire. 30 caractères ou moins, peuvent contenir des caractères _, @, , et -.

prénom
Facultatif. 30 caractères ou moins.

last_name
facultatif. 30 caractères ou moins.

e-mail
E-mail, facultatif. Adresse e-mail.

mot de passe
Mot de passe, obligatoire. Django ne stocke pas les mots de passe en texte clair, mais stocke plutôt les hachages.

groupes
Groupes d'utilisateurs. Relation plusieurs-à-plusieurs avec les autorisations du groupe

user_permissions
utilisateur. Relation plusieurs-à-plusieurs avec autorisation

groups = models.ManyToManyField(Group, verbose_name=_('groups'),
blank=True, help_text=_('Les groupes auxquels appartient cet utilisateur. Un utilisateur' query_name="user")
user_permissions = models.ManyToManyField( Permission,
verbose_name=_('user permissions'), blank=True,
help_text=_('Autorisations spécifiques pour cela user.'),
Related_name="user_set", Related_query_name="user" )


is_staff
Booléen. Détermine si les utilisateurs peuvent accéder à l'interface de gestion d'administration. La valeur par défaut est False.

is_active
Booléen. Si l'utilisateur est actif, True par défaut. Généralement, l'utilisateur n'est pas supprimé, mais le is_active de l'utilisateur est défini sur False.

is_superuser
Booléen. La valeur par défaut est False. Lorsqu'il est défini sur True, l'utilisateur obtient toutes les autorisations.

def has_perm(self, perm, obj=None):
"""

Renvoie True si l'utilisateur dispose de l'autorisation spécifiée. Cette méthode

interroge tous les backends d'authentification disponibles, mais renvoie immédiatement si un
backend renvoie True. Ainsi, un utilisateur qui a l'autorisation d'un seul
backend d'authentification est supposé avoir l'autorisation en général si un objet est PRvidé, les autorisations pour cet objet spécifique sont vérifiées.
"""

               # Les superutilisateurs actifs ont toutes les autorisations. > Retourner _user_has_perm(self, perm, obj)


last_login

L'heure de la dernière connexion est un objet datetime , et la valeur par défaut est l'heure à ce moment-là.

user.last_login = timezone.now()

date_joined

Heure de création de l'utilisateur

Méthodes

is_anonymous()

Si vous êtes un utilisateur anonyme.


is_authenticated()

Si l'utilisateur a réussi la vérification et s'est connecté.

get_full_name()

Renvoyer le prénom plus le nom, avec un espace entre les deux.

get_short_name()

Renvoyer le prénom.


set_password(raw_password)

Définir le mot de passe.


check_password(raw_password)

Vérifiez le mot de passe.


get_group_permissions(obj=None)

Renvoie une collection d'autorisations de groupe d'utilisateurs.


get_all_permissions(obj=None)

Renvoie l'ensemble de toutes les autorisations de l'utilisateur.


has_perm(perm, obj=None)

Si l'utilisateur dispose d'une certaine autorisation. Le format de la permanente est ".".


has_perms(perm_list, obj=None)

Si l'utilisateur dispose de chaque autorisation dans la liste des autorisations.


Création d'un utilisateur

Étant donné que le mot de passe de l'objet Utilisateur n'est pas stocké en texte clair, la création d'un objet Utilisateur est différente de la création de modèle habituelle et de la méthode intégrée create_user() doit être utilisé.

>>> de django.contrib.auth.models import User
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword ')

# À ce stade, l'utilisateur est un objet Utilisateur qui a déjà été enregistré
# dans la base de données. Vous pouvez continuer à modifier ses attributs
# si vous souhaitez modifier d'autres champs.
>>> user.last_name = 'Lennon'
>>> user.save()

Bien sûr, vous pouvez également ajouter des utilisateurs dans l'administrateur interface.

Créer des superutilisateurs

$ python manage.py createsuperuser --username=joe --email=joe@example.com

Changer le mot de passe

Utilisez la méthode intégrée set_password().

>>> de django.contrib.auth.models importer l'utilisateur
>>> >> u.set_password('nouveau mot de passe')
>>> u.save()

Authentifier l'utilisateur

authentifier()

Vérifiez si le nom d'utilisateur et le mot de passe donnés sont un utilisateur valide. S’il est valide, un objet User est renvoyé ; s’il n’est pas valide, None est renvoyé.

from django.contrib.auth import Authenticate

user = Authenticate(username='john', password='secret')
si l'utilisateur n'est pas Aucun :
# le mot de passe vérifié pour l'utilisateur
if user.is_active:
print("L'utilisateur est valide, actif et authentifié")
else:
print("Le mot de passe est valide, mais le compte a été désactivé !")
else :
# le système d'authentification n'a pas pu vérifier le nom d'utilisateur et le mot de passe
print("Le nom d'utilisateur et le mot de passe étaient incorrects.")

Ce qui précède est l'utilisateur Django système d'authentification (1) Le contenu de l'objet Utilisateur Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !



Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn