Ich erstelle eine Website mit Flasche, auf der Benutzer Konten haben und sich anmelden können. Ich verwende Flask-Principal für die Anmeldung und das Rollenmanagement. Gibt es eine Möglichkeit, die Sitzung des Benutzers nach etwa 5 oder 10 Minuten ablaufen zu lassen? Ich konnte das nicht in der Kolbendokumentation oder in der Dokumentation des Kolbenleiters finden.
Ich dachte über eine Möglichkeit nach, dies von Hand zu tun, eine variable serverseitige mit einem Zeit-Tag zum Zeitpunkt der Anmeldung festzulegen und bei der nächsten Aktion, die der Benutzer ausführt, überprüft der Server das Zeitdelta auf diesem Zeitstempel und löscht die Sitzung.
Antworten:
Flask-Sitzungen laufen ab, sobald Sie den Browser schließen, es sei denn, Sie haben eine permanente Sitzung. Sie können möglicherweise Folgendes versuchen:
from datetime import timedelta from flask import session, app @app.before_request def make_session_permanent(): session.permanent = True app.permanent_session_lifetime = timedelta(minutes=5)
In Flask ist permanent_session_lifetime standardmäßig auf 31 Tage festgelegt.
quelle
app.secret_key
und den Server neu starten.before_request
hier statt zu verwendenbefore_first_request
?Ja, wir sollten einstellen
session.permanent = True app.permanent_session_lifetime = timedelta(minutes=5)
Aber ich denke nicht, dass es eingestellt werden sollte
app.before_request
. Dies wird dazu führen, dass sie auch mal eingestellt werden.Das
permanent_session_lifetime
ist eine Grundlagen - Konfiguration , so sollte es eingestellt werden , bei der Konfiguration des App:from datetime import timedelta app = Flask(__name__) app.config['SECRET_KEY'] = 'xxxxxxxxx' app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(minutes=5)
Das
session
Testament wird für jeden Kunden erstellt und von anderen Kunden getrennt. Ich denke, der beste Ort zum Einstellensession.permanent
ist, wenn Sielogin()
:@app.route('/login', methods=['GET', 'POST']) def login(): #After Verify the validity of username and password session.permanent = True
quelle