Cześć, w jaki sposob nalezy stworzyc licznik sesji ktory przekazywalby czas w headerze każdego z zapytań? Muszę stworzyć funkcjonalność która dodatkowo da informację o tym, ze sesja konczy sie na kilka minut wczesniej niz sam jej koniec( kojarzycie pewnie funkcjonalnosc, np. w apkach bankowych gdzie odliczany jest czas sesji ktory nam pozostal by trzeba bylo sie zalogowac kolejny raz). Mialby ktos podsunac jakis przyklad albo tutorial gdzie byloby fajnie wytlumaczone jak to zaimplementowac?
- Rejestracja:ponad 8 lat
- Ostatnio:około 2 lata
- Postów:204
1
Timeout sesji resetuje się za każdym razem, gdy wyślesz żądanie. Zrób na frontencie licznik, który odlicza od danej wartości i resetuj go za każdym razem jak wyślesz żądanie. Nie trzeba robić nic na backendzie
No, chyba że nie resetujesz timeoutu po wysłaniu żądania i zawsze po np. 10min trzeba się zalogować ponownie mimo, że była jakaś aktywność
edytowany 1x, ostatnio: Tyvrel

- Rejestracja:ponad 21 lat
- Ostatnio:około 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
1
- Najlepiej nie mieć żadnych sesji ;)
- Możesz sobie do kontrolera wrzucić argument
HttpSession session
i masz tamgetCreationTime()
, możesz sobie na tej podstawie pobierać z frontu informacje ile sesja jeszcze będzie żyć.
edytowany 1x, ostatnio: Shalom
- Rejestracja:ponad 5 lat
- Ostatnio:prawie 5 lat
- Postów:43
0
@Shalom:
@GetMapping
public UserShortModel getUserData( HttpSession httpSession ) throws ErrorException {
Long time = httpSession.getCreationTime();
if(time == 180000){ //trzy minuty
httpSession.invalidate();
}
Long userId = userService.getUserId(token);
return userService.getUserData(userId);
}
- ma ten kod prawo bytu?
- czy jeśli odpowiedź to TAK, to muszę w każdym controllerze ustawić taki sam warunek?
edytowany 1x, ostatnio: kiowa72

- Rejestracja:ponad 21 lat
- Ostatnio:około 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
1
Nie no to jest bez sensu przecież.
- getCreationTime zwraca ci epoch :D
- Jak chcesz mieć po prostu session expiry to ustaw jakieś property
server.servlet.session.timeout
i tyle - Ten pomysł podałem na wypadek jak chcesz mieć endpoint który zwraca ci informacje o tym kiedy utworzono sesje, bo chciałeś wyświetlać jakiś timer.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
ShalomShalomShalomspringa
, kiedy masz dośc własnego kodu do testowania, ale jak ktoś lubi...