Files
progcode/web/public/assets/editorial/2023/sessions-auth-2023-stale-events.svg
huncode 6e664b3ca6
Build and deploy / deploy (push) Successful in 17s
revise February 2023 session articles
2026-07-31 14:34:09 +03:00

46 lines
3.3 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 760" role="img" aria-labelledby="sessions-auth-2023-stale-events-title sessions-auth-2023-stale-events-desc">
<title id="sessions-auth-2023-stale-events-title">Stale rotation и logout в одной учебной lineage</title>
<desc id="sessions-auth-2023-stale-events-desc">Сервер заменяет fixture-s-1 на fixture-s-2. Повторная rotation и logout старого ID отвергаются и не меняют successor. Logout нового ID revoke-ит его и формирует clear cookie.</desc>
<style>
.bg { fill: #f7fafc; }
.title { fill: #132238; font: 700 42px Arial, sans-serif; }
.sub { fill: #4b5f76; font: 500 24px Arial, sans-serif; }
.lane { fill: #ffffff; stroke: #cbd8e6; stroke-width: 3; }
.active { fill: #e4f7ee; stroke: #21895e; stroke-width: 4; }
.warn { fill: #fff3d9; stroke: #bd7b18; stroke-width: 4; }
.reject { fill: #fde8e8; stroke: #bd3d4a; stroke-width: 4; }
.label { fill: #132238; font: 700 28px Arial, sans-serif; }
.body { fill: #344b64; font: 500 23px Arial, sans-serif; }
.arrow { stroke: #53718e; stroke-width: 7; fill: none; marker-end: url(#sessions-auth-2023-stale-events-arrow); }
.dash { stroke: #bd3d4a; stroke-width: 6; fill: none; stroke-dasharray: 13 10; marker-end: url(#sessions-auth-2023-stale-events-red-arrow); }
</style>
<defs>
<marker id="sessions-auth-2023-stale-events-arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto"><path d="M0,0 L12,6 L0,12 Z" fill="#53718e"/></marker>
<marker id="sessions-auth-2023-stale-events-red-arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto"><path d="M0,0 L12,6 L0,12 Z" fill="#bd3d4a"/></marker>
</defs>
<rect class="bg" width="1200" height="760" rx="34"/>
<text class="title" x="64" y="78">Stale-события не меняют current successor</text>
<text class="sub" x="64" y="118">logout-current: old ID отклонён, active successor остаётся прежним.</text>
<rect class="lane" x="64" y="180" width="1072" height="178" rx="26"/>
<text class="label" x="96" y="230">Server lineage</text>
<rect class="warn" x="286" y="212" width="224" height="110" rx="18"/>
<text class="label" x="316" y="257">fixture-s-1</text>
<text class="body" x="316" y="296">rotated</text>
<path class="arrow" d="M522 267 H674"/>
<rect class="active" x="688" y="212" width="224" height="110" rx="18"/>
<text class="label" x="718" y="257">fixture-s-2</text>
<text class="body" x="718" y="296">active current</text>
<rect class="reject" x="64" y="478" width="290" height="148" rx="22"/>
<text class="label" x="94" y="528">stale rotation s-1</text>
<text class="body" x="94" y="572">reject; no s-3</text>
<path class="dash" d="M352 502 C450 416 508 393 643 332"/>
<rect class="reject" x="440" y="478" width="290" height="148" rx="22"/>
<text class="label" x="470" y="528">stale logout s-1</text>
<text class="body" x="470" y="572">reject; s-2 stays active</text>
<path class="dash" d="M597 474 C655 408 714 384 780 330"/>
<rect class="active" x="816" y="478" width="320" height="148" rx="22"/>
<text class="label" x="846" y="528">logout current s-2</text>
<text class="body" x="846" y="572">revoke + clear cookie</text>
<path class="arrow" d="M927 468 V365"/>
</svg>