| Termin | Definicja |
|---|---|
| brak odświeżania sesji | Brak odświeżania sesji to usterka, w której aktywne połączenie wygasa mimo trwającej aktywności użytkownika. Jak działa sesja i na czym polega jej wygaśnięcieSesja to stan utrzymywany przez aplikację lub serwis internetowy pomiędzy kolejnymi żądaniami użytkownika. Po zalogowaniu serwer zazwyczaj przypisuje przeglądarce identyfikator sesji przekazywany w ciasteczku, nagłówku żądania albo tokenie. Dzięki temu każde następne żądanie może zostać powiązane z właściwym kontem, koszykiem zakupowym, formularzem lub innym stanem aplikacji. Samo otwarcie strony nie oznacza jednak, że sesja będzie ważna bez ograniczeń czasowych. Brak odświeżania sesji występuje wtedy, gdy aktywność użytkownika nie powoduje przedłużenia czasu jej ważności. Serwer może ustawić limit bezczynności, limit całkowitego czasu logowania albo oba te limity jednocześnie. Jeżeli aplikacja nie wysyła w odpowiednim momencie żądania odświeżającego, nie aktualizuje tokenu lub nie odnawia ciasteczka, połączenie może wygasnąć podczas czytania strony, wypełniania formularza albo pracy w panelu. Użytkownik często zauważa problem dopiero po kliknięciu przycisku zapisu, wysłania lub przejścia do kolejnego widoku. Objawy widoczne w przeglądarce i aplikacjiTypowym objawem jest przekierowanie do ekranu logowania mimo wcześniejszej aktywności. W niektórych aplikacjach pojawia się komunikat o wygaśnięciu sesji, kod HTTP 401 Unauthorized albo 403 Forbidden. Inne systemy zwracają stronę startową, pusty formularz lub błąd ogólny bez jasnego wyjaśnienia. Jeżeli formularz był przechowywany wyłącznie w pamięci przeglądarki, jego zawartość może zostać utracona po przeładowaniu strony. Problem może dotyczyć tylko określonych operacji. Odczyt danych może nadal działać, ponieważ korzysta z publicznego lub wcześniej buforowanego zasobu, natomiast zapis wymaga aktualnego uwierzytelnienia. W konsoli deweloperskiej przeglądarki można wtedy zobaczyć nieudane żądania do konkretnego adresu API, odpowiedź 401 lub komunikat dotyczący nieważnego tokenu. W zakładce Network warto porównać czas ostatniego żądania, wartość ciasteczka sesyjnego oraz nagłówki odpowiedzi, zwłaszcza Set-Cookie i WWW-Authenticate, jeżeli serwer ich używa. Odświeżanie strony nie zawsze rozwiązuje usterkę. Może ono jedynie ponownie wyświetlić ekran logowania albo usunąć lokalny stan formularza. Jeżeli przyczyną jest błędna obsługa czasu wygaśnięcia, rozbieżność zegarów, blokowanie ciasteczek lub wadliwy mechanizm odnawiania tokenu, problem będzie powracał po podobnym czasie. Należy odróżnić wygaśnięcie sesji od zerwania połączenia sieciowego: chwilowa utrata Wi-Fi może powodować błędy transportowe, ale nie musi oznaczać nieważnej sesji. Źródła problemu w mechanizmie odnowieniaJedną z przyczyn jest brak żądań podtrzymujących podczas dłuższej pracy. Aplikacja może wysyłać je przy każdej operacji, w stałym interwale albo dopiero po wykryciu aktywności. Błąd w liczniku czasu, zatrzymanie timera przez uśpienie karty przeglądarki lub niewykonanie kodu po wybudzeniu komputera może sprawić, że serwer nie otrzyma odnowienia. Podobny skutek wystąpi, gdy aplikacja odświeży dane, ale nie zapisze nowego tokenu i nadal używa poprzedniego. W systemach wykorzystujących tokeny czasowe znaczenie ma ich pole exp, określające termin wygaśnięcia. Klient powinien rozpoznać zbliżający się koniec ważności i przeprowadzić odnowienie zgodnie z mechanizmem przewidzianym przez daną aplikację. Nie wolno jednak zakładać, że każdy token można samodzielnie przedłużyć przez zmianę danych po stronie klienta. Ważność podpisanego tokenu jest sprawdzana przez serwer, a nieprawidłowa modyfikacja kończy się odrzuceniem żądania. Przyczyną mogą być także ustawienia przeglądarki lub sieci. Ciasteczko może mieć ograniczenie Domain, Path, Secure albo SameSite i w rezultacie nie zostać dołączone do żądania wysyłanego pod innym adresem. Tryb prywatny, rozszerzenie blokujące skrypty, wyczyszczenie danych witryny oraz automatyczne usuwanie ciasteczek również wpływają na ciągłość sesji. Warto sprawdzić, czy data i godzina systemowa są poprawne, ponieważ znaczna różnica czasu może powodować odrzucanie tokenów jeszcze przed faktycznym upływem ich ważności. Postępowanie przy utracie aktywnej sesjiDiagnostykę należy rozpocząć od ustalenia, po jakim czasie występuje problem i jaka czynność go poprzedza. Należy zanotować adres aplikacji, godzinę zdarzenia, komunikat oraz to, czy inne karty i programy korzystają w tym momencie z sieci. Warto sprawdzić działanie tej samej usługi w aktualnej przeglądarce bez rozszerzeń, a następnie porównać wynik z innym połączeniem internetowym. Takie porównanie pomaga rozdzielić błąd aplikacji od problemu lokalnego. Jeżeli sesja wygasa podczas pracy z formularzem, bezpiecznym rozwiązaniem jest okresowe kopiowanie treści przed ponownym logowaniem. Nie należy wielokrotnie wysyłać tego samego formularza bez sprawdzenia, czy pierwsza próba została przyjęta, ponieważ ponowienie może utworzyć duplikat. Gdy problem dotyczy jednego komputera, można wyczyścić dane konkretnej witryny, ponownie uruchomić przeglądarkę i zaktualizować ją do wspieranej wersji. Jeśli błąd występuje na wielu urządzeniach, potrzebna jest analiza konfiguracji aplikacji, czasu życia sesji, logów uwierzytelniania i odpowiedzi serwera. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC oraz ich podzespołów, a w przypadku problemów z wygasającą sesją może sprawdzić konfigurację systemu, przeglądarki, połączenia sieciowego i lokalnych mechanizmów przechowywania danych. |