Ich arbeite an einer Flaschen-App, die eine Authentifizierung benötigt. Ich habe Flaschen-Login angeschlossen, aber es scheint nicht sehr anmutig.
Der erste flask-login muss sicherstellen, dass der Benutzer existiert:
%Vor%Sie müssen aber auch "login_user" verwenden, um das Benutzerobjekt zu erstellen
%Vor%Im obigen Code ist 'Benutzer' ein Modell für Postgres und SignedInUser ist nur ein Objekt, das für Flask-Login verwendet wird.
Hat jemand ein Beispiel für Flask-Login mit Postgres verwendet?
Es sieht so aus, als würden Sie Missverständnis haben, was Flask-Login handhabt. Es ist da, um alles über die Sitzung des Benutzers zu verfolgen, nachdem Sie ihm mitgeteilt haben, dass die Authentifizierung erfolgreich war (durch Aufruf von login_user
). Der user_loader
Callback sagt nur, wie das Objekt für einen Benutzer, der bereits authentifiziert wurde, neu geladen wird wenn sich jemand wieder mit einer "Remember me" -Sitzung verbindet. Die Dokumente sind nicht besonders klar.
Es sollte nicht notwendig sein, ein Flag in der Datenbank für den Anmeldestatus des Benutzers zu behalten. Außerdem verursacht der enthaltene Code einen Attributfehler, wenn die Anmeldeinformationen nicht korrekt sind (user = None).
Hier ist ein Beispiel aus einer Flask-SQLAlchemy-Anwendung. Es verwendet eine externe Authentifizierungsquelle und einen Wrapper für das SQLAlchemy User-Objekt, aber der Prozess ist im Grunde der gleiche.
user_loader Rückruf:
%Vor%Benutzerklasse (Wrapper für SQLAlchemy-Objekt):
%Vor%Login-Handler:
%Vor%Beachten Sie, dass die Anmeldung fehlschlägt, wenn:
login_user
gibt False ( user.is_active() == False
) Abmelden
%Vor%Tags und Links postgresql flask