- Shipped
- 2026년 8월 28일 오전 2:59 UTC
- Author
- Kamo
- Commit
- ce4d901
"새 탭에서 열기"는 `window.open(location.href, ' blank', 'noopener,noreferrer')`이었습니다. 세션 ID는 쿠키에 있지 않습니다. - 탭 당 SessionStorage에 살고 있기 때문에, 자신의 호스트를 공유하지 않고 조직과 per-origin 쿠키 하나의 슬롯이 될 수 있습니다. `window.open` 레거시 클론 opener 관계가 살아있을 때만 저장하고, `noopener`(implied) by `noreferrer` 너무) 정확히 그것. 새 탭은 이렇게 시작되었습니다. 빈 상점은 세션이 없었으며 로그인 페이지로 바뀝니다. 그것은 구조 된 때문에 일한 것처럼 보입니다 : 로그인에 착륙 한 탭. *, 자동 로그인은 호스트 전용 *** 쿠키를 읽고 다시 전달 한국어 이 노출되는 것을 제거, 그래서 버튼은 오히려 고정 리디렉션 복원보다 - 그것은 자신의 세션을 수행하지 않았다. 이제는 다른 크로스탭 항목과 같은 일회성 키 핸디크를 사용합니다. about:blank synchronously 내부의 클릭 (첫 번째는 일시적으로 잃습니다. 활성화 및 WebKit 블록 팝업), OTK를 축소, 다음 탐색 /validate `next`의 현재 페이지로. OTK는 SAME 세션을 해결하므로 새로운 탭은 똑같은 org의 또 다른 인스턴스이며 페이지에 열렸다. `newtab`는 document-load OTK로 등록됩니다. unlisted 목적은 아닙니다 거부 - 침묵적으로 10s TTL로 돌아갑니다. /api/validate는 의지 할 수 없습니다. surviving, 그것이 Redis REPLICA와 retries에서 열쇠를 다시 읽기 때문에 앱을 부팅하기 전에 복제 지연. 세 가지는 두 번째 창 노트에 대해 경고하고이 피합니다. 키가 켜집니다. `next`의 목적지와 /validate, 가장자리가 어떤`?otk=`를 읽기 때문에 /validate에 요청하고 원래의 경로를 삭제합니다. 대상은 절대 URL입니다 `.location.href`에 할당된 리터럴 때문에 변수에 붙인다. check-client-navigation 및 Docker 빌드; /validate는 주의 경로, 그래서 그것은 unauthenticated 동안 신선한 탭을 표시하지 않습니다.