Authentication ဆိုတာ ဘာလဲ? Login၊ Session နှင့် OAuth ရှင်းပြချက်
Authentication ဆိုသည်မှာ အက်ပ်က အသုံးပြုသူ ဘယ်သူလဲ အတည်ပြုသော နည်းလမ်းဖြစ်သည် — ပုံမှန်အားဖြင့် သူသိသောအရာ (password)၊ သူ ရှိသောအရာ (ဖုန်း သို့မဟုတ် email သို့ ပို့သော code) သို့မဟုတ် အခြားယုံကြည်ရသော ဝန်ဆောင်မှုမှ identity (ဥပမာ "Google ဖြင့် sign in") တို့ကို စစ်ဆေးခြင်းဖြင့် ဖြစ်သည်။ အသုံးပြုသူကို authenticate လုပ်ပြီးသည်နှင့် အက်ပ်က session သို့မဟုတ် token ဖြင့် သူ့ကို မှတ်ထားသဖြင့် စာမျက်နှာတိုင်းတွင် ထပ်မံ login ဝင်ရန် မလိုပါ။ ထို သိပြီးသော အသုံးပြုသူ ဘာလုပ်ခွင့်ရှိသလဲ ဆုံးဖြတ်ခြင်းမှာ authorization ဟု ခေါ်သော သီးခြား အဆင့် ဖြစ်သည်။
AI ဖြင့် တည်ဆောက်သည့်အခါ ဘာကြောင့် အရေးကြီးသလဲ
login ထည့်ရန် တောင်းဆိုမှုသည် AI builder သို့ လူများ တောင်းဆိုသော အဖြစ်အများဆုံး အရာများထဲမှ တစ်ခုဖြစ်ပြီး အသေးအဖွဲ အမှားဖြစ်ရလွယ်ဆုံး အရာလည်း ဖြစ်သည်။ login စာမျက်နှာကို ဖန်တီးရန် ရိုးရှင်းသည်။ ခက်သည်မှာ ၎င်းပတ်လည်ရှိ အရာအားလုံး ဖြစ်သည်–
- Password များကို ဘေးကင်းစွာ သိမ်းထားပါသလား။
- private စာမျက်နှာ နှင့် API endpoint တိုင်းက ဘယ်သူ မေးနေသလဲ စစ်ဆေးပါသလား။
- login ဝင်ထားသော customer တစ်ဦးသည် URL ရှိ နံပါတ်ကို ပြောင်းခြင်းဖြင့် အခြား customer ၏ ဒေတာကို မြင်နိုင်ပါသလား။
- မည်သူမဆို password မေ့သွားလျှင် ဘာဖြစ်မလဲ။
အက်ပ်တစ်ခုသည် ထိုအရာများအားလုံး မအောင်မြင်ဘဲ လုံခြုံပုံပေါ်နိုင်သည်။ အစိတ်အပိုင်းများ ဘယ်လို အလုပ်လုပ်သလဲ နားလည်ထားခြင်းက မှန်ကန်သော မေးခွန်းများ မေးနိုင်ပြီး မှန်ကန်သော အရာများကို စမ်းသပ်နိုင်စေသည်။
နေ့စဉ်ဘဝ ဥပမာ
ဟိုတယ်တစ်ခုတွင် check-in လုပ်သည်ကို စဉ်းစားကြည့်ပါ။
ရှေ့စားပွဲတွင် ID ပြသည်။ ၎င်းသည် authentication ဖြစ်သည်– သင် ဘယ်သူလဲ သက်သေပြခြင်း။ ဝန်ထမ်းက key card တစ်ခု ပေးသည်။ ထို card သည် သင်၏ session ဖြစ်သည်– ကျန်ရှိသော တည်းခိုမှုအတွင်း ID ထပ်ပြရန် မလိုတော့ပါ၊ card ကို ပြရုံသာ။
card က သင့်အခန်း၊ ဂျင်မ်နှင့် သင့်ထပ်သို့ lift ကို ဖွင့်ပေးသည် – သို့သော် အခြားဧည့်သည်များ၏ အခန်းများ သို့မဟုတ် ဝန်ထမ်းရုံးကို မဖွင့်ပေးပါ။ ၎င်းသည် authorization ဖြစ်သည်– သင့် identity ဝင်ရောက်ခွင့်ရှိသော အရာများ။ card ပျောက်လျှင် ဟိုတယ်က စားပွဲတွင် ပိတ်နိုင်သည် (session ကို ပယ်ဖျက်ခြင်း)။ ထွက်သည့်အခါ အလုပ်မလုပ်တော့ပါ (logout သို့မဟုတ် သက်တမ်းကုန်ခြင်း)။
"Google ဖြင့် sign in" ဆိုသည်မှာ ဟိုတယ်က သင့် ID ကို ကိုယ်တိုင် မစစ်ဘဲ ယုံကြည်ရသော မိတ်ဖက်မှ "ဤသူသည် ဤသူဖြစ်သည်" ဟူသော စာကို လက်ခံသည်နှင့် တူသည်။
အဓိက login နည်းလမ်းများ
| နည်းလမ်း | အလုပ်လုပ်ပုံ | အားသာချက် | အားနည်းချက် |
|---|---|---|---|
| Email + password | အသုံးပြုသူက password ရွေးသည်၊ အက်ပ်က hash ကို သိမ်းသည် | ရင်းနှီးပြီး ပြင်ပ မှီခိုမှု မရှိ | hash များကို ဘေးကင်းစွာ သိမ်းရမည်နှင့် reset ကို ကိုင်တွယ်ရမည် |
| Magic link / one-time code | အက်ပ်က link သို့မဟုတ် code ကို email ပို့ပြီး အသုံးပြုသူကို login ဝင်စေသည် | ယိုဖိတ်ရန် သို့မဟုတ် မေ့ရန် password မရှိ | email ပို့ခြင်းအပေါ် မူတည်ပြီး login ပိုနှေးသည် |
| Social login (OAuth / OpenID Connect) | အသုံးပြုသူက Google၊ Apple၊ GitHub စသည်ဖြင့်ဖြင့် sign in | အသုံးပြုသူအတွက် မြန်ဆန်၊ သင်က password မသိမ်းရ | provider တစ်ခုစီနှင့် setup လုပ်ရမည်၊ ထို account မရှိသော အသုံးပြုသူများ |
| Hosted auth provider | Clerk၊ Auth0 သို့မဟုတ် Supabase Auth ကဲ့သို့ ဝန်ဆောင်မှုက sign-up၊ login နှင့် reset ကို ကိုင်တွယ်သည် | သင့်အတွက် လုံခြုံရေး အလုပ်နည်းသည် | အရွယ်ကြီးလာလျှင် လစဉ်ကုန်ကျစရိတ်; နောက်ထပ် မှီခိုမှု |
| Multi-factor (MFA / 2FA) | ပထမအဆင့်ပြီးနောက် authenticator app code ကဲ့သို့ ဒုတိယ စစ်ဆေးမှု | ဖောက်ဝင်ရန် ပိုခက်သည် | အနည်းငယ် ပိုခက်ခဲမှု |
Password များကို ဘယ်လို သိမ်းသင့်သလဲ
လုံခြုံသော အက်ပ်သည် သင့် password အစစ်ကို ဘယ်တော့မှ မသိမ်းပါ။ ၎င်းအစား hash ကို သိမ်းသည်– password ကို ပုံသေ string အဖြစ် ပြောင်းသည့် one-way function ၏ ရလဒ်။ login ဝင်သောအခါ အက်ပ်က သင်ရိုက်ထည့်သည့်အရာကို hash လုပ်ပြီး သိမ်းထားသော hash နှင့် နှိုင်းယှဉ်သည်။
ဤနည်းကို ဘေးကင်းစေသော အသေးစိတ် နှစ်ခု–
- Salt — hash မလုပ်မီ password တစ်ခုစီတွင် ထည့်သော ကျပန်းတန်ဖိုး၊ ထို့ကြောင့် password တူသော လူနှစ်ဦးက မတူသော hash ရရှိပြီး ကြိုတင်တွက်ထားသော lookup table များ အသုံးမဝင်တော့ပါ။
- Password အတွက် ရည်ရွယ်ထားသော နှေးသော algorithm — ဥပမာ Argon2၊ bcrypt သို့မဟုတ် scrypt။ MD5 သို့မဟုတ် SHA-256 ကဲ့သို့ ယေဘုယျ hash များသည် တစ်ခုတည်းဖြင့် အလွန်မြန်လွန်းသည်; တိုက်ခိုက်သူများက ခန့်မှန်းချက် ဘီလီယံ ကြိုးစားနိုင်သည်။
Hashing သည် encryption နှင့် တူသည် မဟုတ်ပါ။ encrypt လုပ်ထားသော ဒေတာကို key ဖြင့် decrypt လုပ်နိုင်သည်; password hash ကို ပြန်လှန်၍ မရအောင် ဒီဇိုင်းထုတ်ထားသည်။
Session နှင့် token များ
login ပြီးနောက် အက်ပ်သည် request တိုင်းတွင် သင့်ကို မှတ်မိရန် လိုသည်။ နည်းလမ်းနှစ်မျိုး အများဆုံး ရှိသည်။
| Session (cookie) | Token (ဥပမာ JWT) | |
|---|---|---|
| Browser က ဘာကိုင်ထားသလဲ | cookie ထဲရှိ ကျပန်း session ID | အသုံးပြုသူအချက်အလက်နှင့် သက်တမ်းပါသော လက်မှတ်ထိုးထားသော token |
| Login အခြေအနေ ဘယ်မှာ နေသလဲ | server ပေါ်တွင်၊ ဒေတာဘေ့စ် သို့မဟုတ် store တွင် | token ကိုယ်တိုင်ထဲတွင် |
| တစ်နေရာတည်းမှ ထွက်စေရန် | လွယ်ကူသည်– server ပေါ်တွင် session ကို ဖျက်ပါ | ပိုခက်သည်– block-list မထားလျှင် သက်တမ်းကုန်သည်အထိ token အကျုံး ဝင်နေဆဲ |
| ပုံမှန်အသုံးပြုမှု | ရိုးရာ web အက်ပ်များ | API၊ mobile အက်ပ်များ၊ ပြန်လည် ဆက်သွယ်သော ဝန်ဆောင်မှုများ |
cookie များအတွက် ဆက်တင် သုံးခုက အရေးကြီးသည် – HttpOnly (စာမျက်နှာရှိ JavaScript က cookie ကို ဖတ်၍ မရ)၊ Secure (HTTPS ဖြင့်သာ ပို့သည်) နှင့် SameSite (အခြား site များမှ request များတွင် ပို့ခြင်းကို ကန့်သတ်သည်)။ browser ၏ localStorage တွင် token သိမ်းခြင်းသည် အလွန်သာမန် ဖြစ်သော်လည်း စာမျက်နှာပေါ်တွင် run သော script မှန်သမျှ ၎င်းတို့ကို ဖော်ထုတ်နိုင်သည်။
OAuth နှင့် "Google ဖြင့် sign in"
OAuth 2.0 သည် ကိုယ်စားပြု authorization အတွက် စံနှုန်းဖြစ်သည်– အက်ပ်တစ်ခုက အခြားဝန်ဆောင်မှုရှိ သင့် account သို့ ကန့်သတ်ထားသော ဝင်ရောက်ခွင့် ရယူနိုင်စေသည် – ဥပမာ သင့် Google Calendar ကို ဖတ်ခွင့် – Google password ကို ဘယ်တော့မှ မမြင်ဘဲ။ သင့်ကို Google သို့ ပို့ပြီး scope ဟု ခေါ်သော သတ်မှတ်ထားသည့် ခွင့်ပြုချက်များကို အတည်ပြုသည်၊ ထို့နောက် Google က ထိုခွင့်ပြုချက်များအတွက်သာ token ကို အက်ပ်သို့ ပေးသည်။
OAuth ကိုယ်တိုင်သည် ဝင်ရောက်ခွင့် ပေးရန် ဒီဇိုင်းထုတ်ထားပြီး သင် ဘယ်သူလဲ ပြောရန် မဟုတ်ပါ။ OpenID Connect (OIDC) သည် OAuth 2.0 ၏ အပေါ်တွင် identity ထည့်သော အလွှာ ဖြစ်ပြီး "Google ဖြင့် sign in" သို့မဟုတ် "Apple ဖြင့် sign in" က အသုံးပြုသည်။ setup လုပ်ရန် provider တွင် အက်ပ်ကို မှတ်ပုံတင်ပြီး client ID နှင့် client secret ရယူသည်; secret ကို သင့် server တွင်သာ ထားသည်။
အလုပ်လုပ်ပုံ ဥပမာ – client portal အတွက် login
ဒီဇိုင်း agency ၏ client များက သူတို့၏ ပရောဂျက်များနှင့် invoice များ မြင်ရသော portal တစ်ခု တည်ဆောက်နေသည်ဆိုပါစို့။
- Authentication: client များသည် email နှင့် magic link ဖြင့် login ဝင်သဖြင့် စီမံရန် password မရှိ။ agency ဝန်ထမ်းများက Google Workspace account ဖြင့် login ဝင်သည်။
- Role များ: အသုံးပြုသူတစ်ဦးစီတွင် role တစ်ခု ရှိသည် –
clientသို့မဟုတ်staff။ - Authorization စည်းမျဉ်းများ:
| လုပ်ဆောင်ချက် | Client | Staff |
|---|---|---|
| ကိုယ့်ကုမ္ပဏီ၏ ပရောဂျက်များကို ကြည့်ခြင်း | ဟုတ် | ဟုတ် |
| အခြားကုမ္ပဏီများ၏ ပရောဂျက်များကို ကြည့်ခြင်း | မဟုတ် | ဟုတ် |
| ပရောဂျက်တစ်ခုသို့ ဖိုင် upload လုပ်ခြင်း | ကိုယ်ပိုင်ပရောဂျက်များသာ | ဟုတ် |
| invoice ကို paid အဖြစ် မှတ်ခြင်း | မဟုတ် | ဟုတ် |
- ဘယ်မှာ ပြဋ္ဌာန်းသလဲ: request တိုင်းအတွက် server ပေါ်တွင်။ server က login ဝင်ထားသော အသုံးပြုသူကို ရှာပြီး
project.company_idသည် အသုံးပြုသူ၏ ကုမ္ပဏီနှင့် ကိုက်ညီသော ပရောဂျက်များကိုသာ ပြန်ပေးသည်။ "Mark paid" ခလုတ်ကို ဝှက်ထားခြင်းသည် မလုံလောက်ပါ – endpoint ကိုယ်တိုင် ငြင်းပယ်ရမည်။
ဝေါဟာရ ရှင်းလင်းချက်များ
| ဝေါဟာရ | အဓိပ္ပါယ် |
|---|---|
| Authentication (AuthN) | တစ်စုံတစ်ဦး ဘယ်သူလဲ အတည်ပြုခြင်း။ |
| Authorization (AuthZ) | ဘာလုပ်ခွင့်ရှိသလဲ ဆုံးဖြတ်ခြင်း။ |
| Session | request များကြား သင် login ဝင်ထားကြောင်း အက်ပ်က မှတ်ထားခြင်း။ |
| Cookie | request တိုင်းနှင့်အတူ browser က site သို့ ပြန်ပို့သော အချက်အလက် အနည်းငယ်။ |
| JWT | JSON Web Token – user ID နှင့် သက်တမ်းကဲ့သို့ claim များ သယ်ဆောင်သော လက်မှတ်ထိုးထားသည့် token ကျစ်လျစ်သော ပုံစံ။ |
| Role / permission | ဝင်ရောက်ခွင့် ဆုံးဖြတ်သော admin သို့မဟုတ် member ကဲ့သို့ အမည်များ။ |
| MFA / 2FA | authenticator app မှ code ကဲ့သို့ ဒုတိယ သက်သေ တောင်းဆိုခြင်း။ |
| SSO | Single sign-on – အက်ပ်များစွာအတွက် login တစ်ခုတည်း (မကြာခဏ ကုမ္ပဏီ account)။ |
| 401 vs 403 | "သင်ဘယ်သူလဲ?" (authenticate မလုပ်ရသေး) နှင့် "သင် ထိုသို့ လုပ်၍ မရပါ" (authorize မလုပ်ရ)။ |
အမှားများနှင့် အထင်အမြင်မှားများ
- စာမျက်နှာတွင်သာ ခွင့်ပြုချက် စစ်ခြင်း။ browser က ခလုတ်ကို ဝှက်ထားသော်လည်း API က မစစ်လျှင် မည်သူမဆို API ကို တိုက်ရိုက် ခေါ်နိုင်သည်။
- URL မှ ID များကို ယုံခြင်း။
/invoices/1042သည် invoice 1042 သည် login ဝင်ထားသော အသုံးပြုသူ၏ ဖြစ်ကြောင်း စစ်ရမည်။ - Crypto ကိုယ်တိုင် ရေးခြင်း။ လူသိများသော library သို့မဟုတ် provider များကို သုံးပါ; AI က hashing scheme ကို ဖန်တီးခွင့် မပေးပါနှင့်။
- အားနည်းသော password reset။ reset link များသည် တစ်ကြိမ်သာ သုံးနိုင်ပြီး လျင်မြန်စွာ သက်တမ်းကုန်ရမည်၊ email တွင် account ရှိမရှိ မပြသင့်ပါ။
- သင့် login နှင့် builder ၏ login ကို ရောထွေးခြင်း။ အက်ပ်၏ အသုံးပြုသူများသည် သင် တည်ဆောက်သော tool ပေါ်ရှိ သင့် account နှင့် သီးခြားဖြစ်သည်။
- Login တွင် rate limit မရှိခြင်း။ မရှိလျှင် တိုက်ခိုက်သူများက password များကို အဆုံးမဲ့ ကြိုးစားနိုင်သည်။
AI builder ကို ဘာတောင်းဆိုရမလဲ
- "[လူသိများသော library သို့မဟုတ် provider တစ်ခု] ဖြင့် sign-up နှင့် login ထည့်ပါ။ password hashing ကို ကိုယ်ပိုင် မရေးပါနှင့်။"
- "password များကို bcrypt သို့မဟုတ် Argon2 ဖြင့် hash လုပ်ပြီး သိမ်းပါ။"
- "session အတွက် HttpOnly၊ Secure cookie များကို သုံးပါ။"
- "role နှစ်ခု ထည့်ပါ: admin နှင့် member။ endpoint တိုင်းနှင့် ခေါ်ခွင့်ရှိသော role များကို စာရင်းပြုစုပါ။"
- "အသုံးပြုသူများသည် ကိုယ့် record များကိုသာ ဖတ်နိုင်ပြီး တည်းဖြတ်နိုင်ကြောင်း server ပေါ်တွင် ပြဋ္ဌာန်းပါ။ ထို့နောက် မည်သို့ စစ်ဆေးခဲ့သလဲ ပြပါ။"
- "တစ်နာရီအတွင်း သက်တမ်းကုန်သော တစ်ကြိမ်သုံး link များဖြင့် password reset ထည့်ပါ။"
- "login ကြိုးစားမှုများကို rate-limit လုပ်ပါ။"
ထို့နောက် ကိုယ်တိုင် စမ်းကြည့်ပါ: account နှစ်ခု ဖန်တီးပြီး တစ်ခု၏ အချက်အလက်ကို အခြားတစ်ခု login ဝင်ထားစဉ် ဝင်ကြည့်ရန် ကြိုးစားပါ။ login ထည့်ခြင်း လမ်းညွှန် နှင့် လုံခြုံရေး checklist တို့က ပိုအသေးစိတ် ပေးသည်။
Mythex တွင် Authentication
Mythex သည် သင့်အက်ပ်၏ အသုံးပြုသူများအတွက် built-in auth product မပေးပါ; သင်က နည်းလမ်းကို ရွေးသည် – သင့်ပရောဂျက်၏ ဒေတာဘေ့စ် တွင် သိမ်းသော email နှင့် password၊ သို့မဟုတ် hosted provider ၏ SDK – ထို့နောက် agent ကို ထည့်ရန် တောင်းဆိုသည်။ provider key များကို chat တွင် မဟုတ်ဘဲ ပရောဂျက် secret များတွင် ထည့်ပါ။ ၎င်းသည် Mythex ကိုယ်တိုင်သို့ သင် sign in လုပ်ပုံနှင့် သီးခြားဖြစ်သည်။ အက်ပ်သို့ login ထည့်ခြင်း docs recipe တွင် သင်ပြင်သုံးနိုင်သော starter prompt ရှိသည်၊ ထို server-side စစ်ဆေးမှုများ ဘယ်မှာ နေသလဲကို API ဆိုတာ ဘာလဲ က ရှင်းပြသည်။
မေးခွန်းများ
Authentication နှင့် authorization ကြား ကွာခြားချက် ဘာလဲ?
Authentication က သင်ဘယ်သူလဲ စစ်ဆေးသည်၊ ဥပမာ သင့် password ကို အတည်ပြုခြင်းဖြင့်။ Authorization က သင်ကို သိပြီးနောက် ဘာလုပ်ခွင့်ရှိသလဲ ဆုံးဖြတ်သည်၊ ဥပမာ admin စာမျက်နှာကို ကြည့်ခွင့်ရှိသလား သို့မဟုတ် တစ်ယောက်ယောက်၏ booking ကို တည်းဖြတ်ခွင့်ရှိသလား။ အက်ပ်များသည် နှစ်ခုလုံး လိုအပ်သည်။
OAuth ဆိုတာ ဘာလဲ?
OAuth 2.0 သည် အက်ပ်တစ်ခုက သင့် password ကို မမြင်ဘဲ အခြားဝန်ဆောင်မှုတစ်ခုရှိ သင့် account သို့ ကန့်သတ်ထားသော ဝင်ရောက်ခွင့် ရယူနိုင်စေသော စံနှုန်း ဖြစ်သည်။ 'Google ဖြင့် sign in' သည် OAuth 2.0 ၏ အပေါ်တွင် တည်ဆောက်ထားသော identity အလွှာ OpenID Connect ကို သုံးသဖြင့် အက်ပ်သည် သင်ဘယ်သူလဲ Google မှ သိရသည်။
အက်ပ်က password များကို သိမ်းသင့်လား?
ဖတ်လို့ရသော ပုံစံဖြင့် ဘယ်တော့မှ မသိမ်းပါနှင့်။ email နှင့် password login သုံးပါက password များကို password အတွက် ဒီဇိုင်းထုတ်ထားသော နှေးသည့် algorithm ဖြင့် salted hash အဖြစ် သိမ်းရမည်၊ ဥပမာ Argon2 သို့မဟုတ် bcrypt။ အက်ပ်အများစုသည် hosted auth provider၊ social login သို့မဟုတ် email magic link များ သုံးခြင်းဖြင့် ပြဿနာကို ရှောင်ကြသည်။
Session လား token လား — အက်ပ်က ဘာသုံးသင့်သလဲ?
နှစ်မျိုးလုံး အလုပ်လုပ်သည်။ Session က login အခြေအနေကို server ပေါ်တွင် သိမ်းပြီး browser သို့ cookie ထဲတွင် ကျပန်း ID တစ်ခု ပေးသည်၊ ပြန်ရုပ်သိမ်းရ လွယ်ကူသည်။ JWT ကဲ့သို့ token သည် လက်မှတ်ထိုးထားသော အချက်အလက်ကို ကိုယ်တိုင် သယ်ဆောင်သည်၊ API နှင့် mobile client များအတွက် သင့်တော်သော်လည်း သက်တမ်းမကုန်မီ ပယ်ဖျက်ရ ခက်သည်။ ပုံမှန် web အက်ပ်အတွက် cookie-based session များသည် ယုံကြည်ရသော default ဖြစ်သည်။