![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 1.10.2010 Ostrzeżenie: (0%)
|
Witam. Jak rozwiązać w Symfony2 automatyczne wylogowanie po np 10 minutach bezczynności lub zamknięciu strony?? Wiem, że można ustawić czas trwania sesji, ale to nie wchodzi w grę, ponieważ tuż przed wylogowaniem chcę wykonać skrypt. Jakieś pomysły??
Ten post edytował dragon7 23.08.2012, 22:40:53 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 13.11.2011 Ostrzeżenie: (0%)
|
Pętla w JavaScript (sprawdzanie bezczynnośći) + on before unload. Na oba dajesz ajax'em request do strony i wtedy go wyloguj.
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 1.10.2010 Ostrzeżenie: (0%)
|
Czy to zadziała, jak ktoś zamknie stronę? Próbowałem zrobić z jQuery i $(window).unload(), tyle że to działa nawet przy klikaniu w hiperłącza. Czy istnieje takie zdarzenie, które by wykrywało wyłączenie całej strony (wszystkich zakładek)? Coś w stylu $(document).onunload() ?
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Nigdy nie ma 100% pewności, że jakiś proces wykona się do końca. Zawsze coś może przerwać pracę maszyny, np. zanik zasilania albo młotek wbity w procesor.
Utwórz skrypt, który co 10, 30 czy 60 sekund będzie sprawdzał w bazie danych czy są jakieś nowe wygasłe sesje. Jak jakąś znajdzie to będzie mógł odpalić cokolwiek tam potrzebujesz. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 1.10.2010 Ostrzeżenie: (0%)
|
No dobra już przechowuje sesje w bazie danych, skąd teraz wiedzieć, która jest wygasła? Czy ma to coś wspólnego z session_time?
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
1. Upewnij się, ze kod obsługujący sesje nie ma wbudowanego usuwania przestarzałych sesji. Dostępny "sterownik" dla sesji w Symfony posiada wbudowany odśmiecacz.
2. Napisz osobny skrypt działający cyklicznie, który będzie przetwarzał wygasłe sesje, czyli te, których czas ostatniej aktywności jest większy od czasu żywotności sesji. PS. W przypadku ręcznego niszczenia sesji, np. przy ręcznym wylogowaniu, również powinieneś wykonać kod z punktu #2. |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 1.10.2010 Ostrzeżenie: (0%)
|
Mam pewien problem. Jeśli ustawie session_lifetime na dowolną wartość, to po minięciu tego czasu, nawet gdy użytkownik jest aktywny (wchodzi w podstrony itd.) zostaje automatycznie wylogowany. Jak ustawię, że sesja ma trwać do zamknięcia przeglądarki, to jak mam sprawdzać w bazie danych, która sesja wygasła, skoro może trwać różną długość?
|
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 22:08 |