- Shipped
- 28 Agustus 2026 pukul 02.59 UTC
- Author
- Kamo
- Commit
- ce4d901
"Buka di tab baru" adalah 'window.open (location.href,' _ blank ',' noopener, noreferrer ')'. id sesi tidak dalam cookie - itu tinggal di sesionStorage, per tab, karena organisasi tanpa domain mereka sendiri berbagi satu host dan cookie palsu akan menjadi slot tunggal tab apapun bisa menimpa. 'window.open' legacy-clones gudang penyimpanan hanya sementara hubungan pembuka bertahan, dan 'noopener' (tersirat oleh 'noreferrer' juga) tujuh persis itu. Tab baru itu dimulai dengan toko kosong, tidak menemukan sesi, dan memantul ke halaman login. Kelihatannya berhasil karena sedang diselamatkan: tab mendarat di login. *, dimana auto- login membaca hosts -only * * cookie dan diteruskan kembali ke org. Menghapus ke depan adalah apa yang terkena ini, sehingga tombol ini tetap agak daripada redirect dipulihkan - itu tidak pernah membawa sesi sendiri. Sekarang menggunakan jabat tangan satu-waktu-waktu yang sama seperti entri lintas-tab lainnya: terbuka sekitar: kosong sinkron dalam klik (sebuah menunggu pertama kehilangan sementara Aktivasi dan WebKit memblokir popup), mint sebuah OTK, kemudian menavigasi ke / validate dengan halaman saat ini dalam 'next'. OTK menyelesaikan ke sesi SAME, sehingga baru tab adalah benar-benar instansi lain dari org yang sama, pada halaman itu dibuka dari. 'newtab' terdaftar sebagai dokumen-load tujuan OTK. Tujuan tak terdaftar bukan Ditolak - diam-diam jatuh kembali ke TTL 10s, yang / api / validate tidak dapat mengandalkan bertahan, sejak membaca kunci kembali dari Redis REPPICA dan mengulang melalui replikasi lag sebelum aplikasi bahkan sepatu bot. Tiga hal yang diperingati dari catatan jendela kedua dan ini menghindari: kunci tetap menyala / validate dengan tujuan dalam 'next', karena ujung menulis ulang apapun '? otk =' permintaan ke / validate dan mengabaikan path asli; target adalah sebuah URL absolut dipegang dalam sebuah variabel, karena sebuah literal ditugaskan ke '.location.href' gagal check-client- navigasi dan pembuatan Docker dengan itu; dan / validate adalah jalur awal-sesi, sehingga tidak akan menanda-tangani tab baru ketika belum terotentikasi.