Ich möchte die benutzerdefinierte Authentifizierung in meiner django-App verwenden, kann aber nicht herausfinden, wie ich dies anwenden kann. Kann mir bitte jemand dabei helfen. Beispiel ist mir klar in der Dokumentation gegeben, aber sie haben nicht erwähnt, wo diese neue Klasse zu erstellen und wie dies zu verwenden ist.
Vielen Dank im Voraus!
Wie implementiert man ein benutzerdefiniertes Authentifizierungsschema in DRF?
Um ein benutzerdefiniertes Authentifizierungsschema zu implementieren, müssen wir die BaseAuthentication
-Klasse des DRF ableiten und die .authenticate(self, request)
-Methode überschreiben.
Die Methode sollte ein 2-Tupel von (user, auth)
zurückgeben, wenn die Authentifizierung erfolgreich ist, andernfalls None
. Unter bestimmten Umständen können wir eine AuthenticationFailed
-Ausnahme von der .authenticate()
-Methode auslösen.
Beispiel (aus DRF-Dokumenten ):
Nehmen wir an, wir möchten jede eingehende Anfrage als Benutzer authentifizieren, der von username
in einem benutzerdefinierten Anfragekopf namens 'X_USERNAME'
.
Schritt 1: Erstellen Sie die benutzerdefinierte Authentifizierungsklasse
Dafür erstellen wir eine authentication.py
-Datei in my_app
.
Schritt 2: Geben Sie die benutzerdefinierte Authentifizierungsklasse an
Nach dem Erstellen der benutzerdefinierten Authentifizierungsklasse müssen wir diese Authentifizierungsklasse in unseren DRF-Einstellungen definieren. Auf diese Weise werden alle Anfragen basierend auf diesem Authentifizierungsschema authentifiziert.
%Vor%Hinweis: Wenn Sie diese benutzerdefinierte Authentifizierungsklasse auf der Basis pro Ansicht oder pro Ansichtsgruppe und nicht auf globaler Ebene verwenden möchten, können Sie diese Authentifizierungsklasse definieren explizit in Ihren Ansichten.
%Vor%Im Folgenden finden Sie ein einfaches Beispiel, mit dem eine benutzerdefinierte Authentifizierung erzielt werden kann. Um auf den Endpunkt zugreifen zu können, müssen Sie den Benutzernamen und das Passwort für die POST-Daten übergeben.
urls.py
%Vor%ansichten.py
%Vor%Locken
%Vor% Erstellen Sie in dem Ordner, der Ihre API-Dateien enthält, eine andere Datei, die Ihre benutzerdefinierte Authentifizierungsklasse enthält, z. B. authentication.py
. Dann zeigen Sie in Ihren Einstellungen unter DEFAULT_AUTHENTICATION_CLASSES auf Ihre benutzerdefinierte Authentifizierung Klasse.
Tags und Links python django authentication rest django-rest-framework