Wie der Titel sagt, entwickle ich eine Django-App, die eine andere API verwendet, um den Benutzer zu authentifizieren. Die externe API ist recht einfach und gibt ein Zertifikat zurück, wenn der Benutzer ordnungsgemäß authentifiziert wurde. Meine App sollte keine Benutzerinformationen enthalten, außer dem Zertifikat und der ID (die ich als Sitzungsvariablen behalte).Externe Authentifizierung in einer Django-App
Als ein Nachteil dieser Implementierung, verwende ich nicht Djangos Authentifizierungssystem und alle praktischen Methoden, die es bietet, überprüfen, ob der Benutzer is_authenticated
, is_anonymous
oder Benutzerberechtigungen erhalten.
Da der Benutzer für den Zugriff auf einige Seiten meiner App angemeldet sein muss, muss ich ihn auch bitten, sich einzuloggen, damit er/sie fortfahren kann. Daher wäre die Verwendung von @login_required
Handvoll.
Ich muss auch ein Access Control-Modul erstellen, um Berechtigungen zu überprüfen und den Zugriff auf einige eingeschränkte Bereiche der App nach Benutzergruppen (allgemeine Benutzer, Administratoren, etc.) zu erlauben.
Wissen Sie, wie ich Djangos Authentifizierungssystem anpassen könnte, um all diese Probleme zu lösen?
Im Moment verwende ich Django-Sitzungen, aber es gibt mir nicht die Möglichkeit zu überprüfen, ob der Benutzer authentifiziert ist. Ich muss die Sitzungsattribute bei jedem Aufruf einer Methode manuell überprüfen. Außerdem ist es ein wenig schwierig, private URLs zu handhaben, auf die der Benutzer nur Zugriff haben muss, wenn er geloggt wird. Und du hast Recht, ich möchte keinen Benutzer speichern. – revy
Wenn ich Sie wäre und ich nicht * Lazysignup * verwenden wollte Ich würde nur den Benutzer mit einigen Temp-Daten speichern - Ich würde irgendwann eine Aufgabe hinzufügen, die Benutzer entfernen würde, deren * letztes Anmeldedatum * vor dem heutigen Tag ist –