dragon7
23.08.2012, 20:05:43
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??
HgReed
26.08.2012, 14:39:51
Pętla w JavaScript (sprawdzanie bezczynnośći) + on before unload. Na oba dajesz ajax'em request do strony i wtedy go wyloguj.
dragon7
26.08.2012, 23:31:12
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() ?
Crozin
26.08.2012, 23:48:16
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.
dragon7
28.08.2012, 22:02:49
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?
Crozin
28.08.2012, 22:12:34
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.
dragon7
7.09.2012, 10:59:52
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ść?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.