လမ်းညွှန်များ

OAuth ဆိုတာ ဘာလဲ? "Google ဖြင့် sign in" နှင့် ကိုယ်စားလှယ်ခွင့် ရှင်းပြချက်

OAuth ဆိုတာ အသုံးပြုသူတစ်ဦးက app တစ်ခုကို တခြား service ပေါ်က သူ့ account ကို ကန့်သတ်ထားတဲ့ ဝင်ရောက်ခွင့် ပေးနိုင်တဲ့ open standard ဖြစ်ပြီး password ကို မပေးရပါ။ "Connect Google Calendar" ကို နှိပ်ပြီး "ဤ app က သင့် event များကို ကြည့်ခွင့်ပေးမလား?" ဟု မေးတဲ့ စခရင်ကို မြင်ရတာ ဒါပါပဲ။ App က သင်အတည်ပြုခဲ့တာအတိအကျအတွက် token ရရှိပြီး ၎င်းကို အချိန်မရွေး ရုပ်သိမ်းနိုင်ပါတယ်။ OpenID Connect ဆိုတဲ့ အပိုအလွှာတစ်ခုနဲ့ တူညီတဲ့ စက်ဝိုင်းက "Google ဖြင့် sign in" နဲ့ အလားတူ ခလုတ်တွေကို ပါဝါပေးပါတယ်။

AI နဲ့ တည်ဆောက်တဲ့အခါ OAuth ဘာကြောင့် အရေးကြီးလဲ

App တည်ဆောက်ရာမှာ OAuth ပေါ်လာတဲ့ အခြေအနေ နှစ်ခု ရှိပါတယ်-

  1. Social login။ အသုံးပြုသူတွေက password အသစ်တစ်ခု မဖန်တီးဘဲ "Google ဖြင့် sign in" (သို့မဟုတ် Apple၊ Microsoft၊ GitHub) ဖြင့် ဝင်စေချင်တယ်။ app ထဲ login ထည့်နည်း ကို ကြည့်ပါ။
  2. အသုံးပြုသူတွေရဲ့ တခြား service account များနဲ့ ချိတ်ဆက်ခြင်း။ သင့် app က အသုံးပြုသူရဲ့ calendar ဖတ်ဖို့၊ social account မှာ တင်ဖို့၊ cloud drive က ဖိုင်ဆွဲဖို့ သို့မဟုတ် accounting ဒေတာ sync လုပ်ဖို့ လိုအပ်ပါတယ်။

နှစ်ခုလုံးမှာ AI builder က code ရေးပေးနိုင်ပေမဲ့ အချို့အဆင့်တွေကို သင်တစ်ယောက်တည်းသာ လုပ်နိုင်ပါတယ်- provider နဲ့ developer app ဖန်တီးခြင်း၊ client ID နဲ့ client secret ရယူခြင်း၊ callback URL တွေ မှတ်ပုံတင်ခြင်း၊ အချို့ ခွင့်ပြုချက်များအတွက် provider ရဲ့ review ကို ဖြတ်သန်းခြင်း။ OAuth ဘယ်လို အလုပ်လုပ်လဲ သိထားရင် အဲဒီ အဆင့်တွေနဲ့ ၎င်းတို့ထုတ်တဲ့ error တွေက ပိုနားလည်လွယ်လာပါလိမ့်မယ်။ Login ရဲ့ ပိုကျယ်တဲ့ ပုံရိပ်အတွက် authentication ဆိုတာ ဘာလဲ ကို ကြည့်ပါ။

နေ့စဉ်ဘဝ နမူနာ

ဟိုတယ် key card ကို စဉ်းစားကြည့်ပါ။ Check-in မှာ ရှေ့ desk က သင်ဘယ်သူလဲ အတည်ပြုပြီး သင့် အခန်းနဲ့ ကစားကွင်းကိုသာ ဖွင့်နိုင်တဲ့ card တစ်ခု ပေးပါတယ်- အခြားအခန်းတွေ၊ ဝန်ထမ်းနေရာတွေ မဟုတ်ပါ- ထို့နောက် checkout မှာ အလုပ်မလုပ်တော့ပါ။ Card ထဲမှာ သင့် passport မပါပါ။ ပျောက်ရင် desk က ပယ်ဖျက်ပြီး အသစ်ပေးပါတယ်။

  • ရှေ့ desk က authorization server (Google ရဲ့ sign-in စာမျက်နှာ)။
  • သင့် ID စစ်ဆေးခြင်း က Google မှာ သင် login ဝင်ခြင်း။
  • Key card က access token။
  • "အခန်းနဲ့ ကစားကွင်းသာ" က သင် အတည်ပြုခဲ့တဲ့ scope များ။
  • Checkout က token သက်တမ်းကုန်ခြင်း၊ သို့မဟုတ် သင် ခွင့်ပြုချက်ကို ရုပ်သိမ်းခြင်း။

သင်သုံးနေတဲ့ app က သင့် Google password ကို ဘယ်တော့မှ မမြင်ပါ၊ key card ကိုသာ မြင်ပါတယ်။

OAuth အဆင့်ဆင့် အလုပ်လုပ်ပုံ

Web app တွေအတွက် အသုံးအများဆုံး flow က authorization code flow ဖြစ်ပါတယ်။ အသုံးပြုသူက scheduling app တစ်ခုမှာ Google Calendar ကို ချိတ်ဆက်တဲ့အခါ ဖြစ်ပျက်ပုံ-

  1. နှိပ်ခြင်း။ အသုံးပြုသူက "Connect Google Calendar" ကို နှိပ်ပါတယ်။
  2. Provider ဆီ ပို့ခြင်း။ App က browser ကို client ID၊ လိုချင်တဲ့ scope များ (calendar event ဖတ်ခြင်း) နဲ့ Google က အသုံးပြုသူကို ပြန်ပို့ရမယ့် redirect URI နဲ့ အတူ Google ဆီ ပို့ပါတယ်။
  3. Login ဝင်ပြီး သဘောတူခြင်း။ အသုံးပြုသူက Google ကို sign in လုပ်ပါတယ် (မလုပ်ရသေးရင်) ပြီး app က တောင်းဆိုတာတွေ ပြထားတဲ့ consent စခရင်ကို မြင်ပါတယ်။ Allow ကို နှိပ်ပါတယ်။
  4. Code နဲ့ ပြန်လာခြင်း။ Google က browser ကို app ရဲ့ redirect URI ဆီ ပြန်ပို့ပြီး တိုတောင်းတဲ့ တစ်ကြိမ်သုံး authorization code တစ်ခု ပါလာပါတယ်။
  5. Server ပေါ်မှာ ပြောင်းလဲခြင်း။ App ရဲ့ server က ထို code နဲ့ client secret ကို တိုက်ရိုက် Google ဆီ ပို့ပြီး access token (နဲ့ အမြဲတမ်း refresh token) ကို လက်ခံရရှိပါတယ်။
  6. API ကို သုံးခြင်း။ Server က access token နဲ့ Google Calendar API ကို ခေါ်ပြီး အသုံးပြုသူရဲ့ event တွေကို ရယူပါတယ်။

အဆင့် ၄ က callback ဟာ ဒီလိုပုံစံ ဖြစ်ပါတယ်-

https://yourapp.com/auth/google/callback?code=4/0Adeu5B...&state=x7Kq9

အဆင့် ၅ က token response က JSON ဖြစ်ပြီး ဒီလိုပါ-

{
  "access_token": "ya29.a0Af...",
  "expires_in": 3599,
  "refresh_token": "1//0gL...",
  "scope": "https://www.googleapis.com/auth/calendar.readonly",
  "token_type": "Bearer"
}

အရေးကြီးတဲ့ ဒီဇိုင်းအချက်- token ပြောင်းလဲမှုက server မှ server သို့ ဖြစ်တာမို့ client secret နဲ့ token တွေက browser ကို ဘယ်တော့မှ ဖြတ်သွားစရာ မလိုပါဘူး။

OAuth နဲ့ OpenID Connect နဲ့ သင့်ကိုယ်ပိုင် login

ဘာကို ဖြေပေးလဲနမူနာ
OAuth 2.0"ဒီ app က အသုံးပြုသူ အစား ဘာလုပ်ခွင့်ရှိလဲ?" (ခွင့်ပြုချက်)အသုံးပြုသူရဲ့ calendar ဖတ်ခြင်း
OpenID Connect (OIDC)"ဒီအသုံးပြုသူ ဘယ်သူလဲ?" (အထောက်အထား)၊ OAuth ပေါ်တည်ဆောက်ထား"Google ဖြင့် sign in" က အတည်ပြုထားတဲ့ အီးမေးလ် ပြန်ပေးခြင်း
သင့်ကိုယ်ပိုင် login"ဒီ account အတွက် password မှန်လား?"Database ထဲ (hash လုပ်ပြီး) သိမ်းထားတဲ့ အီးမေးလ်နဲ့ password

အက်ပ်များစွာက ပေါင်းစပ်ထားကြပါတယ်- အီးမေးလ်နဲ့ password login၊ OIDC မှတဆင့် "Google ဖြင့် sign in"၊ နဲ့ တခြား service တွေကို သီးခြား OAuth ချိတ်ဆက်မှုတွေ။

အဓိက အသုံးအနှုန်းများ

အသုံးအနှုန်းအဓိပ္ပာယ်
Provider / authorization serverအသုံးပြုသူ sign in လုပ်ပြီး ခွင့်ပြုချက်ပေးရာ service- Google၊ Microsoft၊ GitHub။
ClientProvider မှာ မှတ်ပုံတင်ထားတဲ့ သင့် app။
Client IDProvider မှာ သင့် app ရဲ့ လူသိရှင်ကြား identifier။
Client secretProvider မှာ သင့် app ရဲ့ လျှို့ဝှက် password။ Server-only။
Scope"calendar ဖတ်ခွင့်" သို့မဟုတ် "email လိပ်စာ ကြည့်ခွင့်" ကဲ့သို့ တိကျတဲ့ ခွင့်ပြုချက်။
Consent screenတောင်းဆိုထားတဲ့ scope တွေကို အသုံးပြုသူ မြင်ပြီး အတည်ပြုရာ စာမျက်နှာ။
Redirect URI / callback URLProvider က အသုံးပြုသူကို ပြန်ပို့ရာ လိပ်စာ။ ကြိုတင်မှတ်ပုံတင်ထားရပြီး အတိအကျ ကိုက်ညီရမယ်။
Access tokenAPI ခေါ်ဖို့ သက်တမ်းတို credential။
Refresh tokenAccess token အသစ်များ ရယူဖို့ သက်တမ်းရှည် credential။ Password လို သိမ်းရပါမယ်။
ID tokenOIDC မှာ အသုံးပြုသူ ဘယ်သူလဲ ဖော်ပြတဲ့ လက်မှတ်ထိုးထားတဲ့ token။
PKCEဖမ်းယူထားတဲ့ code တွေ အသုံးမပြုနိုင်အောင် တားတဲ့ နောက်ထပ် စစ်ဆေးချက် ("proof key")။ Client အားလုံးအတွက် အကြံပြု။
stateတုအတုတောင်းဆိုမှုများမှ flow ကို ကာကွယ်တဲ့ ကျပန်းတန်ဖိုး။

အထင်မှားမှုများ

  • "OAuth က login system ဖြစ်တယ်။" ရိုးရိုး OAuth က ခွင့်ပြုချက်သာ ပေးပြီး identity ကို OpenID Connect က ကိုင်တွယ်ပါတယ်။ Access token ကို အသုံးပြုသူ ဘယ်သူလဲဆိုတဲ့ သက်သေအဖြစ် တိုက်ရိုက်သုံးတာက လုံခြုံရေး bug အစစ်တွေ ဖြစ်စေခဲ့ပါတယ်။
  • "App က ကျွန်တော့် password ကို ရတယ်။" မရပါဘူး။ ဒါက အဓိက အချက်ပါ။
  • "ပိုတောင်းဆိုတာ အန္တရာယ်မရှိဘူး။" အသုံးပြုသူတွေက ကျယ်ပြန့်တဲ့ တောင်းဆိုမှုကို ပိုသတိထားကြပြီး Google လို provider တွေက အရေးကြီး သို့မဟုတ် ကန့်သတ်ထားတဲ့ scope တွေအတွက် app review လိုအပ်နိုင်ပါတယ်။ လိုအပ်တာကိုသာ တောင်းပါ။
  • "Client secret ကို frontend ထဲထည့်လို့ရတယ်။" Browser code ထဲရှိတာ အားလုံး လူသိရှင်ကြား ဖြစ်ပါတယ်။ server-side လျှို့ဝှက်ချက်များ ထဲမှာသာ ထားပါ။
  • "စမ်းသပ်ချိန်မှာ အလုပ်လုပ်တာ၊ production မှာလည်း အလုပ်လုပ်မယ်။" Provider တွေက အတည်မပြုထားတဲ့ app များကို ကန့်သတ်တတ်ပါတယ်၊ ဥပမာ စာရင်းထဲက test user များသာ ဝင်နိုင်အောင်၊ ပြီးတော့ live domain အတွက် redirect URI ကို သီးခြား မှတ်ပုံတင်ရပါမယ်။
  • "Token တွေ အမြဲတမ်း ရှိနေမယ်။" Access token တွေ မြန်မြန် သက်တမ်းကုန်တတ်ပြီး အသုံးပြုသူက ခွင့်ပြုချက်ကို ရုပ်သိမ်းနိုင်ပါတယ်။ သင့် app က နှစ်မျိုးလုံးကို ကောင်းကောင်း ကိုင်တွယ်ရပါမယ်။

သင့် AI builder ကို ဘာမေးရမလဲ

  • "Well-maintained auth library တစ်ခုနဲ့ OpenID Connect သုံးပြီး 'Google ဖြင့် sign in' ထည့်ပါ- OAuth flow ကို ကိုယ်တိုင် မရေးပါနဲ့။"
  • "PKCE ပါတဲ့ authorization code flow ကို သုံးပြီး state parameter ကို စစ်ဆေးပါ။"
  • "Client ID နဲ့ client secret ကို server ပေါ်က environment variable တွေကနေ ဖတ်ပါ။"
  • "လိုအပ်တဲ့ scope တွေကိုသာ တောင်းပါ- calendar ကို read-only ဝင်ခွင့်ပဲ။"
  • "Provider console မှာ မှတ်ပုံတင်ရမယ့် redirect URL အားလုံးကို ပြပါ- preview၊ publish လုပ်ထားတဲ့ URL နဲ့ ကျွန်တော့် custom domain အတွက်။"
  • "Refresh token တွေကို database ထဲ encrypted ပုံစံနဲ့ သိမ်းပြီး သက်တမ်းကုန်သွားတာ သို့မဟုတ် ရုပ်သိမ်းထားတဲ့ token တွေကို အသုံးပြုသူကို ပြန်ချိတ်ဆက်ဖို့ တောင်းဆိုခြင်းဖြင့် ကိုင်တွယ်ပါ။"
  • "အသုံးပြုသူတွေ settings စာမျက်နှာကနေ integration ကို ဖြုတ်နိုင်အောင် ပေးပါ။"

OAuth နှင့် Mythex

Mythex မှာ သင်တည်ဆောက်တဲ့ app များအတွက် built-in end-user login မရှိပါဘူး၊ docs က bring-your-own ချဉ်းကပ်နည်းကို ဖော်ပြထားပါတယ်- auth library သို့မဟုတ် hosted provider ကို ရွေးပြီး ၎င်းရဲ့ key တွေကို project secrets အဖြစ် သိမ်းပြီး agent က code ရေးပေးပါတယ်။ authentication ထည့်ခြင်း recipe မှာ ဒါအတွက် starter prompt ရှိပါတယ်။ Mythex ကိုယ်တိုင်မှာလည်း OAuth ကို တွေ့ရပါလိမ့်မယ်- Google နဲ့ sign up လုပ်နိုင်ပြီး repo sync အတွက် GitHub ချိတ်ဆက်ရာမှာ GitHub OAuth ကို သုံးပါတယ်၊ MCP ဖြင့် Mythex ကို ချိတ်ဆက်တဲ့ AI client တွေကလည်း OAuth consent စာမျက်နှာကနေ ဖြတ်သန်းပါတယ်။ ပိုသိချင်ရင် authentication ဆိုတာ ဘာလဲ နဲ့ two-factor authentication ဆိုတာ ဘာလဲ ကို ကြည့်ပါ။

မေးခွန်းများ

OAuth ဆိုတာ ရိုးရှင်းစွာ ဘာလဲ?

OAuth ဆိုတာ အသုံးပြုသူတစ်ဦးက တခြား service ပေါ်က သူ့ account ကို app တစ်ခုက ဝင်ရောက်ခွင့် ပေးနိုင်တဲ့ စံနည်းလမ်း ဖြစ်ပါတယ်- ဥပမာ scheduling app က သူ့ Google Calendar ကို ဖတ်ခွင့်ပေးတာမျိုး၊ password မပေးဘဲ။ အသုံးပြုသူက သတ်မှတ်ထားတဲ့ ခွင့်ပြုချက်တွေကို အတည်ပြုပြီး app က ထိုအတွက်သာ သုံးနိုင်တဲ့ token တစ်ခု ရရှိပါတယ်။

OAuth က "Google ဖြင့် sign in" နဲ့ အတူတူလား?

"Google ဖြင့် sign in" ဟာ OAuth 2.0 နဲ့ OpenID Connect အပေါ် တည်ဆောက်ထားပါတယ်။ OpenID Connect ဆိုတာ OAuth အပေါ်ကနေ app ကို အသုံးပြုသူ ဘယ်သူလဲ ပြောပြနိုင်တဲ့ စံနည်းလမ်း ထည့်ပေးတဲ့ အလွှာ ဖြစ်ပါတယ်။ OAuth တစ်ခည်းတည်းက ဝင်ခွင့်ပေးခြင်းအကြောင်းသာ ဖြစ်ပြီး OpenID Connect က ၎င်းကို login ဖြစ်အောင် ပြောင်းပေးတာ ဖြစ်ပါတယ်။

OAuth access token ဆိုတာ ဘာလဲ?

Access token ဆိုတာ app က service ရဲ့ API ကို ခေါ်တဲ့အခါ ခွင့်ပြုချက်ရထားကြောင်း သက်သေပြဖို့ ပို့တဲ့ credential ဖြစ်ပါတယ်။ ၎င်းက များသောအားဖြင့် သက်တမ်းတို ပြီး အသုံးပြုသူ အတည်ပြုထားတဲ့ ခွင့်ပြုချက် (scope) များအတွင်းသာ ကန့်သတ်ထားပါတယ်။ Refresh token ကို ထုတ်ပေးခဲ့ရင် app က အသုံးပြုသူကို ထပ်မေးစရာမလိုဘဲ access token အသစ်များ ရယူနိုင်ပါတယ်။

redirect_uri_mismatch ဆိုတာ ဘာကို ဆိုလိုလဲ?

Sign-in လုပ်စဉ် app က ပို့ခဲ့တဲ့ callback URL ဟာ provider ရဲ့ developer console မှာ မှတ်ပုံတင်ထားတာနဲ့ အတိအကျ မကိုက်ညီတာကို ဆိုလိုပါတယ်။ app ရဲ့ လိပ်စာတိုင်းအတွက် URL အတိအကျ (https၊ domain၊ path နဲ့ နောက်ဆုံး slash အပါအဝင်) ကို ထည့်ပါ။

OAuth လုံခြုံသလား?

OAuth 2.0 ကို မှန်ကန်စွာ အကောင်အထည်ဖော်ရင် ကျယ်ကျယ်ပြန့်ပြန့် သုံးကြပြီး လုံခြုံပါတယ်- PKCE ပါတဲ့ authorization code flow၊ တိကျတဲ့ redirect URL များ၊ state parameter နဲ့ client secret နဲ့ token တွေကို server ပေါ်မှာ ထားခြင်းတို့ကို အသုံးပြုပါ။ ပြဿနာအများစုက implementation ဖြတ်လမ်းတွေကနေ ဖြစ်တတ်လို့ ကောင်းကောင်း ထိန်းသိမ်းထားတဲ့ library ကို သုံးဖို့ အကြံပြုပါတယ်။

Mythex · Pricing · AI ဖြင့် ဘာမဆို တည်ဆောက်ပါ · ဝက်ဘ်ဆိုက်နှင့် အက်ပ် Template များ · Mythex နှိုင်းယှဉ်ချက် · AI ဖြင့် အက်ပ်တည်ဆောက်ခြင်း အဘိဓာန် · AI အက်ပ်တည်ဆောက်ရေး အခမဲ့ ကိရိယာများ · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)