နားလည်ထားရမယ့် အချက်
Server-side session တွင် browser က random opaque ID သာသိပြီး user/role/CSRF state ကို Redis hash သို့ JSON value ထဲ TTL ဖြင့်သိမ်းပါတယ်။ Session ID က cryptographically random ဖြစ်ရမယ်၊ cookie ကို Secure/HttpOnly/SameSite သတ်မှတ်ရမယ်၊ privilege change တွင် ID rotate လုပ်ရမယ်။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Login အောင်မြင်လျှင် `session:<hashed-id>` hash ဖန်တီးပြီး 30-minute TTL ပေးမယ်။ Authenticated request တိုင်းမှာ maximum lifetime မကျော်လျှင် sliding expiry refresh လုပ်မယ်။ Logout အတွက် key delete၊ password reset အတွက် user session index ဖြင့် session အားလုံး revoke လုပ်မယ်။
အတူတူ စမ်းရေးကြည့်မယ်
HSET session:sha256_abc userId 42 role student createdAt 1787875200
EXPIRE session:sha256_abc 1800
HGETALL session:sha256_abc
SADD user:42:sessions session:sha256_abc
DEL session:sha256_abc
SREM user:42:sessions session:sha256_abc30-minute expiring session နှင့် per-user revocation index ရမည်။၅ မိနစ် စမ်းကြည့်
Absolute 7-day lifetime + idle 30-minute timeout policy ကို pseudocode ရေးပါ။
သတိလေးတစ်ချက်
Raw session token ကို Redis key/log ထဲတိုက်ရိုက်ထားရင် observability leak မှ account takeover ဖြစ်နိုင်ပါတယ်။ Hash လုပ်ထားပါ။
Redis — Hashes — Redis