Wie kann ich auf die Anfrage in einem django Custom Authentication Backend zugreifen?

8

Ich möchte mit der Authentifizierung von django Folgendes machen:

  • Falsche Anmeldeversuche protokollieren
  • Sperren Sie die Konten vorübergehend nach der "x" Anzahl falscher Anmeldeversuche
  • Erfolgreiche Anmeldungen protokollieren.

Ich dachte, ein benutzerdefiniertes Auth-Backend wäre die Lösung.

Ich kann das meiste tun, was ich will, aber ich möchte die IP und REMOTE_HOST des Benutzers, der den Versuch unternimmt, protokollieren.

Wie kann ich auf das Anfrageobjekt im Auth-Backend zugreifen?

Danke

    
Roger 15.08.2010, 16:53
quelle

1 Antwort

10

Das Authentifizierungs-Backend kann beliebig viele benutzerdefinierte Parameter für die Methode authenticate() verwenden. Zum Beispiel:

%Vor%

Wenn Sie authenticate in Ihrer eigenen Ansicht aufrufen, können Sie das Anfrageobjekt übergeben:

%Vor%

Wenn Sie djangos Login-Ansicht (oder die Admin-Anmeldung) verwenden, haben Sie keine zusätzlichen Informationen. Einfach gesagt, Sie müssen Ihre eigene benutzerdefinierte Login-Ansicht verwenden.

Seien Sie außerdem vorsichtig, wenn Sie Konten automatisch sperren: Sie erlauben es jemandem, absichtlich eines Ihrer Benutzerkonten zu sperren (Denial of Service). Es gibt Möglichkeiten, dies zu umgehen. Stellen Sie außerdem sicher, dass das Protokoll falscher Versuche keine versuchten Passwörter enthält.

    
Will Hardy 15.08.2010 17:19
quelle

Tags und Links