5 trików z ciasteczkami do debugowania problemów z uwierzytelnianiem
Debugowanie uwierzytelniania w aplikacjach webowych jest powolne. Często marnujesz czas na tworzenie nowych kont lub czyszczenie wszystkich ciasteczek, aby przetestować różne typy użytkowników.
Możesz przetestować dowolny stan bez ingerencji w bazę danych. Skorzystaj z tych pięciu technik, aby bezpośrednio manipulować ciasteczkami.
- Celuj w konkretne ciasteczka zamiast czyścić wszystko
Czyszczenie wszystkich ciasteczek niszczy sesję serwera deweloperskiego, local storage oraz tryby testowe Stripe. Zamiast tego usuń tylko ciasteczko uwierzytelniające (auth cookie).
Częste nazwy to:
- session
- sid
- auth_token
- _session_id
W DevTools przejdź do Application > Cookies > [twoja domena]. Kliknij prawym przyciskiem myszy na ciasteczko sesyjne i wybierz Delete. To zresetuje stan użytkownika do wylogowanego, zachowując jednocześnie pozostałe ustawienia.
- Symuluj nowych użytkowników poprzez usuwanie flag onboardingowych
Aplikacje używają ciasteczek, aby śledzić, czy użytkownik zakończył konfigurację. Szukaj nazw takich jak onboarding_complete lub first_visit.
Aby przetestować przepływ dla nowego użytkownika:
- Wyeksportuj obecne ciasteczka.
- Usuń flagę onboardingową.
- Odśwież stronę.
Pozwala to na testowanie progresywnych gałęzi interfejsu użytkownika bez konieczności zakładania nowego konta.
- Zmieniaj role użytkowników w 30 sekund za pomocą migawek (snapshots)
Jeśli Twoja aplikacja posiada różne role, takie jak Admin lub Guest, nie loguj się i nie wylogowuj ręcznie. Użyj migawek ciasteczek.
- Zaloguj się jako Admin. Wyeksportuj ciasteczka jako admin-session.json.
- Zaloguj się jako Regular User. Wyeksportuj je jako user-session.json.
- Aby zmienić rolę, po prostu zaimportuj plik JSON i odśwież stronę.
Serwer ufa tokenowi sesji. Używasz ważnych sesji, które już wcześniej utworzyłeś. Przechowuj te pliki JSON lokalnie. Zawierają one wrażliwe tokeny sesji.
- Testuj wygasłe sesje natychmiast
Nie czekaj godzinami, aż sesja wygaśnie. Zmień datę wygaśnięcia ręcznie.
W DevTools kliknij dwukrotnie kolumnę Expires dla swojego ciasteczka sesyjnego. Ustaw datę na przeszłą. Odśwież stronę. Zobaczysz dokładnie to, co dzieje się, gdy sesja wygasa.
- Naprawiaj pętle przekierowań podczas logowania
Pętle często wynikają z nieaktualnych lub błędnie sformatowanych ciasteczek. Sesja istnieje, ale serwer ją odrzuca.
Aby znaleźć przyczynę:
- Zidentyfikuj wszystkie ciasteczka związane z uwierzytelnianiem.
- Usuwaj je jedno po drugim.
- Odświeżaj stronę po każdym usunięciu.
W momencie, gdy pętla ustanie, znajdziesz uszkodzone ciasteczko. Pomoże Ci to ustalić, czy problemem jest błędny token, czy nieprawidłowa domena ciasteczka.
Te metody działają nawet dla ciasteczek HttpOnly, ponieważ DevTools oraz rozszerzenia takie jak CookieJar działają na poziomie przeglądarki.