- Expediere
- 15 iunie 2026 la 18:58 UTC
- Autor
- kamo
- Comite
- 896ea51
Id sesiune a trăit într-un cookie browser împărtășit peste toate filele unui originea, astfel încât o a doua filă (impersation) nu a putut organiza propria sesiune. Mutați transportatorul în sesiuneStorage (per-tab): - sesiuneClient: token helpers + un ambalaj global de colectare care ataşează ID ca X-***-Token pe apeluri de aceeași origine /api, plus o singură dată - Migraţie de depozitare. Instalat prin SessionBootstrap în aranjament. - ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** genera-otk, sesiune/info, sesiune/extindere, logout, meet/invite-email. - generaOTK + getKsemId FromRequest preferă X-***-Token peste cookie. - /api/validat nu mai setează un cookie ***; returnează ID-ul și /validarea paginii îl stochează în sesiunea acestei fileStorage. - utilizeazăUserInfo + toate cârligele WebSocket citește ID-ul din sesiuneStorage. - logout capturează jetonul înainte de a goli depozitul astfel încât sesiunea Redis este încă invalidat. Imperformation just opens /validat?otk=... in a new tab (aceeași cale ca autentificare: Redis sesiune creat server-side, OTK înmânat /validat); noua fila devine propria sesiune și fila admin este neatins. Elimină KeepPrev/ImpersonationBanner return-to-admin machines. Orgiile rămân separate de domeniul .