Benutzerdefinierte Django Rest Framework-Authentifizierung

8

Ссылка

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!

    
Arbaz Rizvi 29.09.2015, 13:04
quelle

3 Antworten

8

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' .

angegeben wird

Schritt 1: Erstellen Sie die benutzerdefinierte Authentifizierungsklasse

Dafür erstellen wir eine authentication.py -Datei in my_app .

%Vor%

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%     
Rahul Gupta 29.09.2015 14:36
quelle
4

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%     
Slipstream 11.09.2017 09:25
quelle
0

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.

    
mcastle 29.09.2015 14:16
quelle