Proxy မှတစ်ဆင့် OmniAuth လော့ဂ်အင်ကို ခြေရာခံခြင်း
Proxy လိုအပ်သော တောင်းဆိုချက်များတွင် ၎င်းကို ပြင်ဆင်သတ်မှတ်ရန် browser ၏ ပြန်ညွှန်မှုနှင့် Rails ဘက်မှ token လဲလှယ်မှုကို လိုက်လံကြည့်ပါ။
အသုံးပြုသူက “Sign in” ကို နှိပ်ပြီး ဝန်ဆောင်မှုပေးသူ၏ စာမျက်နှာသို့ ရောက်ကာ Rails သို့ ပြန်လာသည်။ နောက်အဆင့်သည် Rails ဆာဗာမှ ချိတ်ဆက်မှုအသစ် စတင်သောကြောင့် မအောင်မြင်နိုင်သေးပါ။
browser → provider authorization page → browser callback to Rails
Rails → provider token endpoint → Rails
Browser သည် ကိုယ်ပိုင် ကွန်ရက်ပြင်ဆင်မှုဖြင့် ခွင့်ပြုမိန့် ပြန်ညွှန်မှုကို လိုက်လံသည်။ Rails သည် ထည့်သွင်းထားသော OmniAuth မဟာဗျူဟာက ရွေးချယ်သည့် HTTP client ဖြင့် နောက်ခံလမ်းကြောင်း token လဲလှယ်မှုကို ဆောင်ရွက်သည်။ ကော်ပိုရိတ် proxy နောက်တွင် လုပ်ဆောင်နေသော worker သည် ဝန်ဆောင်မှုပေးသူထံ တောင်းဆိုချက်များတွင် ထိုလမ်းကြောင်း လိုအပ်သည်။
OAuth 1.0 တွင်လည်း အသုံးပြုသူက ခွင့်ပြုချက်မပေးမီ ဆာဗာဘက်တွင် တောင်းဆိုမှု token အဆင့် ရှိသည်။ OAuth 2.0 ၏ ခွင့်ပြုကုဒ် စီးဆင်းမှုတွင် callback ပြီးနောက် ကိုယ်ပိုင် token လဲလှယ်မှု ရှိသည်။ တိကျသော အစီအစဉ်သည် မဟာဗျူဟာအပေါ် မူတည်သော်လည်း browser နှင့် application ဆာဗာသည် သီးခြား စတင်သည့်နေရာများအဖြစ် ကျန်ရှိနေသည်။
Client ၏ ပြင်ဆင်မှုကို ရှာပါ
မဟာဗျူဟာကို ၎င်း၏ token နှင့် ဝန်ဆောင်မှုပေးသူ API တောင်းဆိုချက်များကို ပို့သော HTTP client အထိ လိုက်လံပါ။ ထို client ၏ မှတ်တမ်းတင်ထားသော proxy ရွေးချယ်မှုကို အသုံးပြုပါ။ အချို့မဟာဗျူဟာများသည် client ရွေးချယ်မှုများကို OAuth စာကြည့်တိုက်သို့ ပေးပို့သည်။ အခြားအရာများသည် ၎င်း၏အောက်တွင် HTTP ချိတ်ဆက်မှုကို ပြင်ဆင်သည်။ မဟာဗျူဟာတစ်ခု လက်ခံသော ရွေးချယ်မှုသည် အလိုအလျောက် OmniAuth ၏ မျှဝေရွေးချယ်မှု မဖြစ်ပါ။
ဝန်ဆောင်မှုပေးသူ၏ ခွင့်ပြုချက်၊ token နှင့် callback URL များသည် ၎င်း၏ အမှန်တကယ် ဝန်ဆောင်မှုများကို ဖော်ပြပါစေ။ အထွက် proxy သည် ဝန်ဆောင်မှုပေးသူထံ ရောက်ရန် သယ်ယူပို့ဆောင်ရေး သတ်မှတ်ချက်ဖြစ်ပြီး callback လိပ်စာ အစားထိုး သို့မဟုတ် OAuth တောင်းဆိုချက် ကန့်သတ်ချက်များတွင် ထည့်ရမည့် အကွက် မဟုတ်ပါ။
လော့ဂ်အင်ကို ခြေရာခံစဉ် နောက်ဆုံး ပြီးစီးသည့် အဆင့်ကို အမှတ်အသားပြုပါ။ ပြသထားသော ဝန်ဆောင်မှုပေးသူ လော့ဂ်အင်စာမျက်နှာသည် browser ၏ လမ်းကြောင်း အလုပ်လုပ်ခဲ့ကြောင်း သက်သေပြသည်။ Rails လက်ခံရရှိသော callback သည် browser ပြန်လာခဲ့ကြောင်း သက်သေပြသည်။ နောက်ထပ် token တောင်းဆိုချက်သည် Rails လုပ်ငန်းစဉ်မှ လာသော proxy ချိတ်ဆက်မှု၊ စိန်ခေါ်မှု သို့မဟုတ် ဝန်ဆောင်မှုပေးသူ၏ တုံ့ပြန်မှုကို စစ်ဆေးရမည့် နေရာဖြစ်သည်။