Próbowałem nauczyć się Flask, a po drodze rozszerzyć logowanie Flask. Mogę wykonać podstawowe uwierzytelnianie zgodnie z oczekiwaniami. Problem, który mnie wprawił w zakłopotanie, dotyczy ustawienia "Pokaż moje okna i karty od ostatniego czasu" w Firefoksie i ustawienia "Kontynuuj, gdzie skończyłem" w Chrome. Wszystkie badania przeprowadzone w tej witrynie i innych miejscach wskazują, że te ustawienia powinny działać tylko w przypadku otwartych kart. Więc jeśli jesteś uwierzytelniony, a następnie zamknij kartę, a następnie zamknij przeglądarkę, przeglądarka powinna przywracać pliki cookie "tylko sesja" dla kart otwartych po zamknięciu przeglądarki. Jednak zarówno w przeglądarce Firefox, jak i Chrome plik cookie "tylko sesja" jest nadal aktywny po ponownym uruchomieniu przeglądarki i przechodzę do strony oznaczonej jako @login_required. Powinienem także wspomnieć o tym, że przekazuję False do argumentu zapamiętującego login_user: tak: login_user(user, remember=False)
Flask-Login: Jak zmusić Firefox/Chrome do usunięcia pliku cookie sesji po zamknięciu karty?
Grałem z ideą świeżych loginów z rozszerzeniem Flask-Login myśląc, że zamknięcie zakładki przed zamknięciem przeglądarki z pewnością oznaczałoby sesja stała się nieaktualna, ale tak się nie dzieje. Sprawdzam wartość login_fresh()
, która zwraca wartość true, jeśli logowanie jest świeże i nadal zwraca wartość True.
Dowiedziałem się, jak sprawić, aby logowanie wygasło po określonym czasie, używając session.permanent = True
, a następnie ustawiając app.permanent_session_lifetime = 'so many minutes/seconds'
, który działa idealnie, ale nie jest to, czego chcę.
Mogę żyć z tym, że Firefox/Chrome zapamięta sesyjne pliki cookie dla otwartych kart, ale nie rozumiem, dlaczego zapamiętują sesyjne pliki cookie mojej witryny, nawet jeśli karta jest zamknięta przed zamknięciem przeglądarki . Czy to oczekiwane zachowanie? Czy można się spodziewać, że plik cookie sesji zostanie usunięty z mojej strony, gdy najpierw zamknę kartę, a potem przeglądarkę?