Thuta Learning
ရှာဖွေရန်
Redis
IntermediateData & Databasesbeginner

Session Store

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Session Store concept ကို နားလည်ရှင်းပြနိုင်ရန်
  • နမူနာ Redis command/code ကို ကိုယ်တိုင် run ပြီး output စစ်နိုင်ရန်
  • Tutorial Platform project နှင့် production scenario တွင် မှန်ကန်စွာအသုံးချနိုင်ရန်

နားလည်ထားရမယ့် အချက်

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 လုပ်မယ်။

အတူတူ စမ်းရေးကြည့်မယ်

shell
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_abc
You should see
30-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 — HashesRedis

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Raw session token ကို Redis key/log ထဲတိုက်ရိုက်ထားရင် observability leak မှ account takeover ဖြစ်နိုင်ပါတယ်။ Hash လုပ်ထားပါ။
  • နမူနာ command ကို production Redis ပေါ် တိုက်ရိုက်မစမ်းဘဲ local/test instance နဲ့ recoverable data ပေါ်တွင် အရင်အတည်ပြုပါ။

လေ့ကျင့်ခန်း

Absolute 7-day lifetime + idle 30-minute timeout policy ကို pseudocode ရေးပါ။

You'll know it worked when: 30-minute expiring session နှင့် per-user revocation index ရမည်။