- Dikirim
- 6 September 2026 pukul 00.55 UTC
- Penulis
- Kamo
- Commit
- f68bcce
Cara terakhir anggota bisa kehilangan panggilan hidup dan segala sesuatu dalam alat mereka jendela tanpa melakukan sesuatu yang salah. 'AuthenticateFetch' menjawab EVERY 401 dengan 'window.location.href =' / logout " - dari tujuh - satu situs panggilan, tanpa cek bahwa sesi sebenarnya berakhir. Itu adalah hal terberat aplikasi ini dapat dilakukan dari klien: itu air mata dokumen bawah, yang mengakhiri sesi SIP tinggal di dalamnya, dan menghapus sesi Redis bersama bahwa tab anggota lainnya masih bekerja. A 401 adalah sederhana cara umum server mengatakan "bukan permintaan ini"; itu bukan bukti bahwa sesi berakhir. Dua jalur kode kedua sisi itu sudah tahu bahwa dan yang satu ini tidak. 'SesionMonitor' memerlukan dua 401s berturut-turut sebelum menyebut sebuah token ditolak, dan 'SesionManager' s probe peringatan kadaluarsa / api / sesi / info dan tanda-tanda keluar hanya pada 404, 401 atau TTL di nol, pada alasan yang dinyatakan bahwa "transient blip jaringan atau 5xx tidak boleh sign keluar pengguna aktif ". Ini membuat ketiga setuju dengan mereka: - A 401 sekarang menegaskan sebelum mengarahkan kembali, menggunakan probe yang sama. 404, 401 atau TTL < = 0 berarti pergi dan logout menghasilkan persis seperti sebelumnya. A 5xx, an offline probe, atau sebuah sesi langsung berarti titik akhir menolak satu permintaan ini, yaitu menyerahkan ke pemanggil sebagai 'Tidak sah' kegagalan biasa daripada menjadi Menjawab dengan menghancurkan tab. - Sebuah tab memegang ada token sendiri tidak pernah keluar pada 401, karena alasan sesionMonitor mantra keluar untuk cabang sendiri: itu tidak pernah dikonfirmasi DI SINI, sehingga 401 berarti "tidak ada kredensial dalam tab ini", dan mengarahkan kembali akan menghapus Sesi Redis saudara-saudaranya masih menggunakan. - Probe dibagi saat dalam penerbangan. Sebuah halaman yang api enam dikonfirmasi permintaan sekaligus mendapat enam 401 sekaligus, dan itu adalah salah satu pertanyaan, bukan enam. - Use Entitlement '' is Abandited 'masih membaca "Sesi kadaluarsa" dan karenanya masih berarti "dokumen akan pergi"; sesi hidup 401 sekarang jatuh ke the loader 's ordinary retry and self-heal, which is what should always have terjadi padanya. Dan pin perlindungan panggilan, yang tidak ada yang memegang di tempat: Sesi SIP hidup dalam dokumen ini dan tidak ada di server memegang pegangan ke itu, sehingga air mata berakhir panggilan langsung. Lima permukaan berdiri antara panggilan dan bahwa, dan setiap orang adalah efek dalam file besar - yang sebelum membongkar konfirmasi, detak jantung aktivitas yang membuat TTL hidup sementara seseorang mendengarkan daripada mengetik, pagehide BYE untuk ketika air mata tidak dapat dihindari pula, alat - jendela menutup veto, dan sekarang konfirmasi 401. Hidup CallSurvival.test pin lima, dan gagal ketika ada dihapus (diverifikasi dengan menghapus tiga). Sumber greps daripada uji perilaku, sengaja: vitest.config.ts mengumpulkan app / lib, aplikasi / komponen, aplikasi / pasien, app / store, app / network dan aplikasi / utils - TIDAK aplikasi / konteks atau aplikasi / kait, dimana tiga dari lima hidup. Sebuah tes ditulis di samping mereka akan dikumpulkan oleh apa-apa dan lulus dengan tidak pernah berjalan. 456 test file pass; eslint bersih pada setiap berkas yang disentuh.