2015-12-06 13 views
12

Domyślnie Flask używa sesji zmiennych, co oznacza, że ​​plik cookie sesji traci ważność po zamknięciu przeglądarki. Aby korzystać ze stałych sesji, które będą używać pliku cookie z określoną datą ważności, należy ustawić session.permanent = True, tak jak mentioned in this question., a data wygaśnięcia zostanie ustawiona na podstawie config['PERMANENT_SESSION_LIFETIME'].Sesja permanentna z kolbą: gdzie je zdefiniować?

Jestem zaskoczony, że czas życia sesji jest zdefiniowany w pliku konfiguracyjnym, jednak nie można zażądać używania stałych sesji za pomocą konfiguracji, takiej jak config['USE_PERMANENT_SESSION'] = True. Ale niech tak będzie.

Moje pytanie brzmi: jeśli chcesz zrobić chcesz stałych sesji, jakie jest najlepsze miejsce do ich zdefiniowania? Czy jest to funkcja @app.before_request zaproponowana we wspomnianym pytaniu? Ale oznaczałoby to ustawienie go ponownie przy każdym wniosku? Wydaje się, że po ustawieniu, session.permanent pozostaje prawdziwe do końca sesji.

Stałe sesje są zazwyczaj używane po po zalogowaniu, więc może najlepszym miejscem do ich zgłoszenia jest przetwarzanie login_user()? Czy jest to najlepsza polityka, aby używać niestabilnych plików cookie sesji dla wszystkich anonimowych stron i przechodzić na sesje stałe, robiąc session.permanent = True przy logowaniu?

A można chcieć ustawić inny czas życia w zależności od tego, czy jest to zwykły plik cookie session, czy plik cookie remember_me. Jaki byłby najlepszy sposób, aby to osiągnąć?

Odpowiedz

9

Jestem zaskoczony, że nikt nie odpowiedział na to pytanie. Wygląda na to, że powinna istnieć jakaś zmienna konfiguracyjna SESSION_PERMANENT = True. Ale niestety nie ma. Jak wspomniałeś, jest to najlepszy sposób na zrobienie tego.

@app.before_request 
def make_session_permanent(): 
    session.permanent = True 
+0

To rozwiązanie sprawia, że ​​sesja jest trwale zmodyfikowana –

Powiązane problemy