Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wygaśnięcie sesji
Forum PHP.pl > Forum > PHP
Blackhole
Hej.
Gdy używamy w PHP sesji, to ma ona jakiś czas życia. W sesji trzymamy np. jakiś ID (np. usr_id) ograniczający dane uzyskiwane z bazy danych do tych, które należą do zalogowanego użytkownika. Gdy po dłuższym czasie nieaktywności użytkownika sesja wygaśnie i użytkownik wykona request do bazy, to będzie on błędy, gdyż usr_id nie będzie dostępny.
Jak się najlepiej ustrzec przed taką ewentualnością?
markonix
W bankach jest np licznik który odmierza czas.
Licznik oczywiście w JS, gdy czas upłynie możesz odświeżyć stronę, wysłać request ajaxem.
by_ikar
Tworzysz sobie osobną kolumnę w tabeli użytkowników i nazwij ją powiedzmy token. Ów token będzie regenerowany przy każdym zalogowaniu i będzie umieszczany powiedzmy w osobnym ciasteczku "rememberMe". Tworzysz sobie jakiś plik/funkcje/klasę co kolwiek masz tam w swoim systemie, który będzie sprawdzać czy user jest zalogowany (w sesji) jeżeli nie, to sprawdzasz czy istnieje ciastko "rememberMe", jeżeli istnieje, sprawdzasz w tabeli użytkowników czy jest użytkownik z takim tokenem; jeżeli jest to go logujesz (regenerując jednocześnie ten token). I gotowe, użytkownik jest zalogowany.
Blackhole
Dzięki za odpowiedzi.
Ja mam większość wywołań przez AJAX, więc rozumiem, iż będę musiał przed każdym takim wywołaniem sprawdzić, czy user jest zalogowany i jeśli nie, to go zalogować. Tak?
MWL
Najlepiej użyj tokena - to jest najbezpieczniejsze i najoptymalniejsze.
Blackhole
Ok, mam użyć tokena. A co mam przez to rozumieć? (bo nie wiem, czy myślimy o tym samym)
NickOver
Cytat
Ok, mam użyć tokena. A co mam przez to rozumieć? (bo nie wiem, czy myślimy o tym samym)

Masz przez to rozumieć użycie systemu z tokkenem ktory był podany chyba4 posty wyżej.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.