Heim >Backend-Entwicklung >Python-Tutorial >Django-Benutzerauthentifizierungssystem (1) Benutzerobjekt

Django-Benutzerauthentifizierungssystem (1) Benutzerobjekt

黄舟
黄舟Original
2016-12-23 17:41:071312Durchsuche

Benutzerobjekt

Benutzerobjekt ist der Kern des Authentifizierungssystems. Benutzerobjekte werden typischerweise verwendet, um Benutzer einer Website darzustellen und beispielsweise Zugriffskontrolle, registrierte Benutzer, Zuordnung von Erstellern und Inhalten usw. zu unterstützen. Im Django-Authentifizierungsframework gibt es nur eine Benutzerklasse. Beispielsweise sind Superuser („Superusers“) oder („Staff“)-Benutzer einfach dieselben Benutzerobjekte mit unterschiedlichen Attributen.

Standardfelder Felder

Benutzername

Benutzername, Pflichtfeld. 30 Zeichen oder weniger, kann _, @, +, und - Zeichen enthalten.

Vorname
Optional. 30 Zeichen oder weniger.

Nachname
optional. 30 Zeichen oder weniger.

E-Mail
E-Mail, optional. E-Mail-Adresse.

Passwort
Passwort, erforderlich. Django speichert Passwörter nicht im Klartext, sondern speichert Hashes.

Gruppen
Benutzergruppen. Viele-zu-viele-Beziehung zur Gruppe

user_permissions
Benutzerberechtigungen. Viele-zu-viele-Beziehung zur Berechtigung

groups = models.ManyToManyField(Group, verbose_name=_('groups'),
blank=True, help_text=_('Die Gruppen, denen dieser Benutzer angehört. Ein Benutzer erhält '
'seine Gruppen'),
'alle Berechtigungen, die jeder seiner '
'Gruppen' gewährt werden.),
related_name="user_set", related_ query_name="user ")
user_permissions = models.ManyToManyField( Permission,
verbose_name=_('Benutzerberechtigungen'), blank=True,
help_text=_('Spezifische Berechtigungen für diesen Benutzer.'),
related_name="user_set", related_query_name="user" )


is_staff

Boolean. Legt fest, ob Benutzer auf die Admin-Verwaltungsoberfläche zugreifen können. Der Standardwert ist False.


is_active

Boolescher Wert. Ob der Benutzer aktiv ist, standardmäßig True. Im Allgemeinen wird der Benutzer nicht gelöscht, aber is_active des Benutzers wird auf False gesetzt.


is_superuser

Boolescher Wert. Der Standardwert ist False. Bei der Einstellung „True“ erhält der Benutzer vollständige Berechtigungen.


def has_perm(self, perm, obj=None):
"""
Gibt True zurück, wenn der Benutzer über die angegebene Berechtigung verfügt. Diese Methode
fragt alle verfügbaren Authentifizierungs-Backends ab, gibt aber zurück Falls vorhanden, gibt das Backend sofort „True“ zurück. Daher wird davon ausgegangen, dass ein Benutzer, der die Berechtigung eines einzelnen Authentifizierungs-Backends hat, generell über die Berechtigung für dieses bestimmte Objekt verfügt.
"""

               # Aktive Superuser haben alle Berechtigungen. > Return _user_has_perm(self, perm, obj)


last_login

Die letzte Anmeldezeit ist ein Datetime-Objekt , und der Standardwert ist die Zeit zu diesem Zeitpunkt.

user.last_login = timezone.now()

date_joined

Zeitpunkt der Benutzererstellung

Methoden

is_anonymous()


Ob Sie ein anonymer Benutzer sind.

is_authenticated()

Gibt an, ob der Benutzer die Überprüfung bestanden und sich angemeldet hat.

get_full_name()

Vorname plus Nachname mit einem Leerzeichen dazwischen zurückgeben.

get_short_name()
Vorname zurückgeben.

set_password(raw_password)
Passwort festlegen.

check_password(raw_password)
Passwort überprüfen.

get_group_permissions(obj=None)
Gibt eine Sammlung von Benutzergruppenberechtigungen zurück.

get_all_permissions(obj=None)
Gibt den Satz aller Berechtigungen des Benutzers zurück.

has_perm(perm, obj=None)
Ob der Benutzer eine bestimmte Berechtigung hat. Das Format von perm ist „.“.

has_perms(perm_list, obj=None)
Gibt an, ob der Benutzer über jede Berechtigung in der Berechtigungsliste verfügt.

Erstellen eines Benutzers

Da das Passwort des Benutzerobjekts nicht im Klartext gespeichert wird, unterscheidet sich das Erstellen eines Benutzerobjekts von der üblichen Modellerstellung und der integrierten Methode create_user() muss genutzt werden.

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

# Zu diesem Zeitpunkt ist der Benutzer ein Benutzerobjekt, das bereits in der Datenbank gespeichert wurde
# Sie können seine Attribute weiter ändern
#, wenn Sie andere Felder ändern möchten.
>>> user.last_name = 'Lennon'
>>> user.save()

Natürlich können Sie auch Benutzer im Admin hinzufügen Schnittstelle.

Superuser erstellen

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

Passwort ändern

Verwenden Sie die integrierte Methode set_password().

>>> from django.contrib.auth.models import User
>>> u = User.objects.get(username='john')
> >> u.set_password('neues Passwort')
>>> u.save()

Benutzer authentifizieren

authenticate()

Überprüfen Sie, ob der angegebene Benutzername und das Passwort ein gültiger Benutzer sind. Wenn es gültig ist, wird ein Benutzerobjekt zurückgegeben. Wenn es ungültig ist, wird None zurückgegeben.

aus django.contrib.auth importieren Authenticate
user = Authenticate(Benutzername='John', Passwort='Geheimnis')
wenn der Benutzer nicht None ist:
# das Passwort, für das überprüft wurde der Benutzer
if user.is_active:
print("Benutzer ist gültig, aktiv und authentifiziert")
else:
print("Das Passwort ist gültig, aber das Konto wurde deaktiviert!")
sonst:
# das Authentifizierungssystem konnte den Benutzernamen und das Passwort nicht überprüfen
print("Der Benutzername und das Passwort waren falsch.")

Oben ist der Django-Benutzer Authentifizierungssystem (1) Der Inhalt des Benutzerobjekts. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn