%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%% flowchart LR subgraph Era1["ยุค Web Server / Server Session"] A["Session IDServer เก็บ state"] B["CookieClient เก็บ session id"] end subgraph Era2["ยุค API/Mobile / Token"] C["JWT TokenClient เก็บ token"] D["Stateless APIServer ไม่เก็บ session"] end subgraph Era3["ยุค Microservices / Distributed Auth"] E["Access Tokenใช้ข้าม service"] F["Refresh Tokenต่ออายุ session"] end A --> B --> C --> D --> E --> F
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%% flowchart TD A["Login Requestผู้ใช้ส่งรหัสผ่าน"] --> B{"เลือกวิธี AuthChoose auth style"} B --> C["Session-basedServer stores session"] B --> D["Token-basedServer signs token"] C --> E["Set-Cookieส่ง session id"] D --> F["Access Tokenส่ง token"] E --> G["Protected Requestตรวจ cookie"] F --> H["Protected Requestตรวจ Authorization header"]