Jedno z odrzuconych wniosków nie kończy już rozmowy i sesji

Fixkamo-internal
Szycy
6 września 2026 00:55 UTC
Autor
Kamo
Pochęt się
f68bcce

Ostatni sposób, w jaki członek może stracić połączenie na żywo i wszystko w swoim narzędziu Okna, nie robiąc nic złego. "autenticatedFetch" odpowiedział EVERY 401 z ?window.location.href "/logout" — z siedemdziesięciu jeden stron połączeń, bez sprawdzania, czy sesja faktycznie miała Skończyło się. To jest najcięższa rzecz, jaką ta aplikacja może zrobić od klienta: to łzy Dokument w dół, który kończy sesję SIP mieszkającą w niej i usuwa Podzielona sesja Redis, w której inne karty członka nadal działają. A 401 jest Po prostu najczęstszy sposób, w jaki serwer mówi "nie ten wniosek"; nie jest to dowód Że sesja się skończyła. Dwie ścieżki kodowe po obu stronach już o tym wiedziały, a ta nie. „sessionMonitor” wymaga dwóch kolejnych 401 przed odrzuceniem tokena, oraz "SessionManager" sondy ostrzegawcze przed wygaśnięciem /api/session/info i wypisują Tylko na 404, 401 lub TTL przy zerowej podstawie, że "przejściowy Sieć blip lub 5xx nigdy nie może wylogować aktywnego użytkownika. To sprawia, że trzeci Zgadzam się z nimi: - 401 teraz potwierdza, zanim przekierowuje, używając tej samej sondy. 404, 401 lub TTL-0 oznacza zniknąć, a wylogowanie przebiega dokładnie tak, jak wcześniej. A 5xx, offline Sonda lub sesja na żywo oznacza punkt końcowy odrzucony na ten wniosek, który jest Przekażony dzwoniącemu jako zwykła „nieuprawniona” porażka, zamiast być Odpowiedział, niszcząc zakładkę. - Zakładka trzymająca własny brak własnego tokena nigdy nie jest podpisana na 401, z tego powodu SesjaMonitor tłumaczy dla własnej gałęzi: nigdy nie została uwierzytelniona TUTAJ, Tak więc jego 401 oznacza "brak poświadczeń w tej zakładce", a przekierowanie usunęłoby Sesja Redis, której rodzeństwem wciąż korzysta. - Sonda jest dzielona podczas lotu. Strona, która wystrzeliwuje sześć uwierzytelnionych Prośby naraz dostają sześć 401 naraz, a to jedno pytanie, a nie sześć. - useEntyments 'isAbandoned' nadal brzmi "Sesja wygasła" i dlatego Nadal oznacza "dokument odchodzi"; sesja na żywo 401 teraz spada Zwykłe ponowne przymierzenie i samouzdrowie, co zawsze powinno mieć Zdarzyło się to. I przypieczętować ochronę wywołania, które nic nie trzymało na miejscu: Sesja SIP mieszka w tym dokumencie i nic na serwerze nie posiada uchwytu. To, więc łzawiarstwo kończy wezwanie. Pięć powierzchni stoi między wezwaniem i To, a każdy z nich jest efektem wewnątrz dużego pliku – przed rozładywanie potwierdzenia, bicie serca aktywności, które utrzymuje TTL przy życiu, gdy ktoś słucha Zamiast pisać, pagehide BYE, gdy łamienie jest nieuniknione, i tak, Narzędzie-window close weto, a teraz potwierdzenie 401. liveCallSurvival.test Przypina wszystkie pięć i kończy się niepowodzeniem, gdy którykolwiek zostanie usunięty (zweryfikowany przez usunięcie trzech). Grepy źródłowe zamiast testów behawioralnych, celowo: vitest.config.ts Gromadzi aplikację/lib, aplikację/komponenty, aplikację/pacjentów, aplikację/sklepy, aplikację/sieci oraz Aplikacja/utils - NOT app/contexts lub aplikacja/hooki, gdzie mieszkają trzy z pięciu. Test Napisani obok nich zostaną zebrane przez nic i przejdą przez kreskę, nigdy nie biegnąc. 456 plików testowych przechodzi; eslint jest czysty na każdym dotknięciu pliku.

Wszystkie zmiany

Jak to, co widzisz żeglugę?

Każda z tych aktualizacji automatycznie ląduje w miejscu pracy. Zacznij za darmo i obserwuj, jak rośnie tydzień po tygodniu.

Start Free ForeverZobacz ceny