Tworzę stronę internetową z flaskiem, na której użytkownicy mają konta i mogą się zalogować. Używam flask-Principal do częściowego logowania i zarządzania rolami. Czy istnieje sposób na wygaśnięcie sesji użytkownika po powiedzmy 5 lub 10 minutach? Nie mogłem tego znaleźć w dokumentacji kolby ani w dokumentacji dyrektora kolby.
Pomyślałem o tym, jak zrobić to ręcznie, ustawić zmienną po stronie serwera ze znacznikiem czasu w momencie logowania, a przy następnej akcji użytkownika serwer weryfikuje deltę czasu na tym znaczniku czasowym i usuwa sesję.
Odpowiedzi:
sesje flask wygasają po zamknięciu przeglądarki, chyba że masz sesję stałą. Możesz spróbować następujących rzeczy:
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)
Domyślnie w Flasku permanent_session_lifetime jest ustawione na 31 dni.
źródło
app.secret_key
i zrestartujesz serwer.before_request
tutaj zamiastbefore_first_request
?Tak, powinniśmy ustawić
session.permanent = True app.permanent_session_lifetime = timedelta(minutes=5)
Ale nie sądzę, że powinno to być ustawione na.
app.before_request
To doprowadzi do ich ustawienia wiele razy.Jest
permanent_session_lifetime
to konfiguracja podstawowa , więc należy ją ustawić podczas konfigurowania aplikacji:from datetime import timedelta app = Flask(__name__) app.config['SECRET_KEY'] = 'xxxxxxxxx' app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(minutes=5)
session
Wola stworzony dla każdego klienta, oddzielone od innych klientów. Myślę więc, że najlepszym miejscem do ustawieniasession.permanent
jestlogin()
:@app.route('/login', methods=['GET', 'POST']) def login(): #After Verify the validity of username and password session.permanent = True
źródło