


Wie authentifiziert man Django-Benutzer über E-Mail-Adressen?
Oct 19, 2024 pm 08:08 PMDjango-Authentifizierung per E-Mail
In Django erfolgt die Authentifizierung normalerweise mithilfe von Benutzernamen. Manchmal ist es jedoch wünschenswert, Benutzer stattdessen über ihre E-Mail-Adressen zu authentifizieren. Dies stellt eine Herausforderung dar, da Django Benutzernamen in seiner URL-Struktur verwendet.
Benutzerdefiniertes Authentifizierungs-Backend
Um diese Einschränkung zu überwinden, können Sie ein benutzerdefiniertes Authentifizierungs-Backend schreiben. Mit diesem Backend können Sie Ihre eigene Authentifizierungslogik festlegen:
<code class="python">from django.contrib.auth import get_user_model from django.contrib.auth.backends import ModelBackend class EmailBackend(ModelBackend): def authenticate(self, request, username=None, password=None, **kwargs): UserModel = get_user_model() try: user = UserModel.objects.get(email=username) except UserModel.DoesNotExist: return None else: if user.check_password(password): return user return None</code>
Dieses Backend authentifiziert Benutzer anhand ihrer E-Mail-Adressen und Passwörter.
Konfigurieren des Authentifizierungs-Backends
Sobald Sie dies getan haben Wenn Sie Ihr benutzerdefiniertes Backend eingerichtet haben, legen Sie es in Ihren Django-Einstellungen als Authentifizierungs-Backend fest:
<code class="python">AUTHENTICATION_BACKENDS = ['path.to.auth.module.EmailBackend']</code>
Mit E-Mail anmelden
Wenn das benutzerdefinierte Backend vorhanden ist, können Sie Benutzer anhand ihrer E-Mail-Adressen authentifizieren:
<code class="python">email = request.POST['email'] password = request.POST['password'] user = authenticate(request, username=email, password=password)</code>
Das obige ist der detaillierte Inhalt vonWie authentifiziert man Django-Benutzer über E-Mail-Adressen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie benutze ich eine schöne Suppe, um HTML zu analysieren?

So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu finden

Wie man mit PDF -Dokumenten mit Python arbeitet

Wie kann man mit Redis in Django -Anwendungen zwischenstrichen

Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch?

Serialisierung und Deserialisierung von Python -Objekten: Teil 1

So implementieren Sie Ihre eigene Datenstruktur in Python
