Pracuję nad witryną, która wymaga od nas zalogowania użytkownika po N minutach bezczynności. Czy są jakieś najlepsze praktyki do tego przy użyciu Django?Wylogowywanie użytkowników z witryny Django po N minutach bezczynności
Odpowiedz
Spójrz na session middleware i jego ustawień. W szczególności te dwie:
SESSION_COOKIE_AGE
domyślne: 1209600 (2 tygodnie, w ciągu kilku sekund)
Wiek sesyjne, w sekund.
SESSION_SAVE_EVERY_REQUEST
domyślna: Fałsz
czy zapisać dane sesji na każde żądanie. Jeśli jest to wartość false (domyślnie), dane sesji będą zapisywane tylko, jeśli zostały zmodyfikowane - to znaczy, jeśli którakolwiek z jej wartości słownika została przypisana lub usunięta.
Ustawienie niskiego poziomu SESSION_COOKIE_AGE
i włączenie SESSION_SAVE_EVERY_REQUEST
powinno spowodować "wyślizgiwanie się" wygasania.
Spróbuj ustawić ustawienia.SESSION_COOKIE_AGE na N * 60 sekund.
http://docs.djangoproject.com/en/dev/ref/settings/#session-cookie-age
Ustawienie wieku ciasteczek sesji w oprogramowaniu pośredniczącym sesji django powoduje ustawienie czasu wygaśnięcia w nagłówku set-cookie przekazywanym do przeglądarki. Jest to tylko zgodność przeglądarki z czasem wygaśnięcia, który wymusza "wylogowanie".
W zależności od przyczyn potrzeby bezczynnego wylogowania użytkownik może nie uznać wystarczająco dobrze zgodności przeglądarki z czasem wygaśnięcia. W takim przypadku musisz rozszerzyć oprogramowanie pośrednie sesji, aby to zrobić.
Na przykład możesz przechowywać czas wygaśnięcia w silniku sesji, który aktualizujesz z zapytaniami. W zależności od rodzaju ruchu w Twojej witrynie, możesz chcieć tylko napisać z powrotem do obiektu sesji raz w X sekund, aby uniknąć nadmiernego zapisu danych w db.
To nie wydaje się być prawdą w Django 1.4. Nagłówek Set-Cookie, który otrzymuję z serwera, wygląda następująco: 'Set-Cookie = csrftoken = ... sessionid = 365ede0dd7038cc70796f9f724bc21b6; httponly; Ścieżka =/'Nie ma czasu wygaśnięcia, więc wygaśnięcie musi być wymuszone po stronie serwera. – Nathan
Miło, że oprogramowanie pośrednie sesji zostało ulepszone. Nie jestem pewien, co powinienem zrobić z tą odpowiedzią, która była wtedy dokładna. – MattH
Myślę, że dobrze jest pozostawić odpowiedź tak, jak jest, ponieważ była prawidłowa w momencie pisania. – Nathan
- 1. Otrzymywanie błędu 413 Żądanie zbyt dużej ilości przy korzystaniu z SSL po kilku minutach bezczynności
- 2. Detekcja bezczynności w WPF
- 3. Zend Framework automatyczne wylogowanie po bezczynności
- 4. Django Zdobądź wszystkich użytkowników
- 5. Sesja CakePHP/autowy wylogowywanie z przerwami
- 6. Aplikacja nie śpi po upływie czasu bezczynności
- 7. Jak mogę zintegrować logowanie użytkowników z mojej witryny do phpBB?
- 8. Ukryj kursor myszy po czasie bezczynności
- 9. django śledzenie ostatnich użytkowników online
- 10. .NET Application bardzo powoli po długim okresie bezczynności
- 11. Django - Profile użytkowników różnych typów
- 12. Aplikacja WPF powolna po powrocie z trybu bezczynności
- 13. różne profile użytkowników z Django profile i django rejestracji
- 14. Ważność sesji Django?
- 15. Logowanie dla wielu użytkowników Django - najlepsze podejście?
- 16. Wyświetlanie witryny Django i witryny sieci Web w sieci LAN
- 17. Wiele typów użytkowników Auth w Django
- 18. Django - Kwerenda pasująca do witryny nie istnieje
- 19. usuń \ n "po" lines.replace
- 20. Jak programowo dodawać użytkowników OpenID do witryny Plone
- 21. Aplikacja wiersza poleceń Symfony2 jest "Killed" po kilku minutach
- 22. Limit czasu strony ASP.NET Core po 30 minutach
- 23. Jak wyjść z polecenia po n sekundach?
- 24. Serwer Nodejs i Express zamyka połączenie po 2 minutach
- 25. Logowanie/wylogowywanie w REST ze Spring 3
- 26. ContentNotRenderedError po Django uaktualnić
- 27. Metody WWW z HttpContext.Current.User.Identity.IsAuthenticated przestają działać po bezczynności na platformie Azure
- 28. Przesunięcie UTC w minutach
- 29. Wylogowywanie wszystkich otwartych kart automatycznie po wylogowaniu się użytkownika w jednym z nich
- 30. Powolna reakcja aplikacji Adobe AIR po okresie bezczynności
Dzięki McNearney. dzisiaj rozwiązałem Mój problem za pomocą Twojego posta. –