JWT ဒီကုဒါ ဆိုသည်မှာ အဘယ်နည်း
JWT ဒီကုဒါ သည် JSON Web Token (JWT) တစ်ခုကို စာသားရိုက်ထည့်သည့်နေရာတွင် ထည့်သွင်းရုံဖြင့် ၎င်း၏ ဒီကုဒ်လုပ်ထားသော ခေါင်းစီး (header) နှင့် Payload တို့ကို ချက်ချင်းကြည့်ရှုနိုင်မည့် ကိရိယာတစ်ခုဖြစ်သည်။ ဤကိရိယာသည် တိုကင်မှ ထုတ်ယူထားသော အယ်လ်ဂိုရီသမ်၊ အမျိုးအစား၊ ထုတ်ပေးသည့်အချိန် နှင့် သက်တမ်းကုန်ဆုံးချိန် စသည့် အဓိကအချက်အလက်များကို ပြသပေးသည်။ ထို့အပြင် တိုကင်၏ သက်တမ်းကုန်ဆုံးမှုဆိုင်ရာ သတ်မှတ်ချက် (expiration claim) အပေါ် မူတည်၍ ၎င်း၏ သက်တမ်းရှိမှု အခြေအနေကိုလည်း ဖော်ပြပေးနိုင်သည်။
ထည့်သွင်းရမည့်အချက်များနှင့် ကန့်သတ်ချက်များ
ဤကိရိယာကို အသုံးပြုရန်အတွက် အောက်ပါအချက်များနှင့် ကိုက်ညီသော JWT တစ်ခုကို ထည့်သွင်းပေးရမည်ဖြစ်သည် -
- JWT: ၎င်းသည် JSON Web Token ကို ကိုယ်စားပြုသည့် စာသားစု ဖြစ်ရမည်။
- ၎င်းတွင် အစက်ဖြင့် ခွဲခြားထားသော အပိုင်း ၃ ပိုင်း မဖြစ်မနေ ပါဝင်ရမည်။
- ၎င်းသည် အလွန်အမင်း ရှည်လျားလွန်းခြင်း မရှိစေရပါ။
ထွက်ပေါ်လာမည့် ရလဒ်များ
တိုကင်ကို ထည့်သွင်းပြီးပါက အောက်ပါအချက်အလက်များကို ရလဒ်အဖြစ် တွေ့မြင်ရမည်ဖြစ်သည် -
- ခေါင်းစီး (Header): JSON ပုံစံဖြင့် ဖော်ပြပေးသော JWT ၏ ဒီကုဒ်လုပ်ထားသည့် ခေါင်းစီး ဖြစ်သည်။
- Payload: JSON ပုံစံဖြင့် ဖော်ပြပေးသော JWT ၏ ဒီကုဒ်လုပ်ထားသည့် Payload ဖြစ်သည်။
- အယ်လ်ဂိုရီသမ်: JWT တွင် အသုံးပြုထားသော အယ်လ်ဂိုရီသမ် ဖြစ်သည်။
- အမျိုးအစား: JWT ၏ အမျိုးအစား ဖြစ်သည်။
- ထုတ်ပေးသည့်အချိန်: JWT ကို စတင်ထုတ်ပေးခဲ့သည့် အချိန်ဖြစ်သည်။
- သက်တမ်းကုန်ဆုံးချိန်: JWT ၏ သက်တမ်းကုန်ဆုံးမည့် အချိန်ဖြစ်သည်။
- အခြေအနေ: တိုကင်၏ သက်တမ်းရှိမှုကို ဖော်ပြပေးသည့် တံဆိပ်ဖြစ်ပြီး "သက်တမ်းရှိသည်"၊ "သက်တမ်းကုန်ဆုံးပြီ"၊ "သက်တမ်းမစသေးပါ" သို့မဟုတ် "သက်တမ်းကုန်ဆုံးရက်မရှိပါ" ဟု ပြသပေးသည်။
- စာလုံးရေ: ထည့်သွင်းလိုက်သော JWT တွင် ပါဝင်သည့် စာလုံးအရေအတွက် ဖြစ်သည်။
လုပ်ဆောင်ချက် စည်းမျဉ်းများနှင့် အမှားအယွင်းများ
ဤကိရိယာသည် အသုံးပြုမှု အခြေအနေအမျိုးမျိုးအတွက် အောက်ပါအတိုင်း တုံ့ပြန်ဆောင်ရွက်ပေးသည် -
- ထည့်သွင်းသည့်နေရာတွင် မည်သည့်အရာမျှ မရှိပါက ကိရိယာသည် "အဆင်သင့်ဖြစ်ပါပြီ။ ဒီကုဒ်လုပ်ရန် JWT တစ်ခုခု ထည့်သွင်းပါ။" ဟူသော အခြေအနေတွင် ရှိနေမည်ဖြစ်သည်။
- ထည့်သွင်းလိုက်သော အရာသည် မှန်ကန်သော JWT တစ်ခု မဟုတ်ပါက "မှန်ကန်သော JWT မဟုတ်ပါ — အစက်ဖြင့် ခွဲခြားထားသော အပိုင်း ၃ ပိုင်း ပါဝင်ရပါမည်။" ဟု ပြသမည်ဖြစ်သည်။
- မမှန်ကန်သော Base64URL ကြောင့် ခေါင်းစီးကို ဒီကုဒ်မလုပ်နိုင်ပါက "Header ကို ဒီကုဒ်မလုပ်နိုင်ပါ — မမှန်ကန်သော Base64URL ဖြစ်သည်။" ဟု ပြသမည်ဖြစ်သည်။
- မမှန်ကန်သော Base64URL ကြောင့် Payload ကို ဒီကုဒ်မလုပ်နိုင်ပါက "Payload ကို ဒီကုဒ်မလုပ်နိုင်ပါ — မမှန်ကန်သော Base64URL ဖြစ်သည်။" ဟု ပြသမည်ဖြစ်သည်။
- ခေါင်းစီးသည် မှန်ကန်သော JSON မဟုတ်ပါက "Header သည် မှန်ကန်သော JSON မဟုတ်ပါ။" ဟု ပြသမည်ဖြစ်သည်။
- Payload သည် မှန်ကန်သော JSON မဟုတ်ပါက "Payload သည် မှန်ကန်သော JSON မဟုတ်ပါ။" ဟု ပြသမည်ဖြစ်သည်။
- ထည့်သွင်းလိုက်သော စာသားသည် ရှည်လွန်းနေပါက "၎င်းသည် စစ်မှန်သော JWT ဖြစ်ရန် ရှည်လွန်းနေပါသည်။" ဟု ပြသမည်ဖြစ်သည်။
- မမှန်ကန်သော တိုကင်တစ်ခုကို ထည့်သွင်းသည့်အခါ ဒီကုဒ်လုပ်ထားသော နေရာများကို ဝှက်ထားမည်ဖြစ်သည်။
- ထည့်သွင်းထားသည်များကို ရှင်းလင်းလိုက်သည့်အခါ ထည့်သွင်းသည့်နေရာ (input field) သို့ အလိုအလျောက် ပြန်လည်အာရုံစိုက် (focus) သွားမည်ဖြစ်သည်။
- တိုကင်တွင်
expသတ်မှတ်ချက် မပါဝင်ပါက အခြေအနေပြနေရာတွင် "သက်တမ်းကုန်ဆုံးရက်မရှိပါ" ဟု ပြသမည်ဖြစ်သည်။ - ဤကိရိယာသည် JWT ၏ လက်မှတ် (signature) ကို အတည်ပြုပေးခြင်း မရှိသလို၊ လက်မှတ်ထိုးရာတွင် သုံးသည့် လျှို့ဝှက်ကုဒ် (signing secret) သို့မဟုတ် public key ကိုလည်း တောင်းဆိုမည်မဟုတ်ပါ။
ကိုယ်ရေးအချက်အလက် လုံခြုံမှု
သင့်တိုကင်ကို သင့်ဘရောက်ဇာထဲတွင်သာ ဒီကုဒ်လုပ်ပါသည်။ BroBroGo သို့ မည်သည့်အရာမျှ တင်ပို့ခြင်းမရှိပါ။
မည်သူများ အသုံးပြုရန် သင့်တော်သနည်း
- JWT များကို အမှားရှာပြင်ဆင်လိုသော ပရိုဂရမ်မာများ (Developers)။
- JWT များနှင့် အလုပ်လုပ်နေရသော ပံ့ပိုးကူညီရေး အင်ဂျင်နီယာများ (Support engineers)။
- JWT များကို စစ်ဆေးရသော လုံခြုံရေး စမ်းသပ်စစ်ဆေးသူများ (Security testers)။
အမေးအဖြေများ (FAQ)
မေး - ကျွန်ုပ်၏ JWT ကို ဤနေရာတွင် ထည့်သွင်းခြင်းက စိတ်ချရပါသလား။
ဖြေ - ဟုတ်ကဲ့၊ စိတ်ချရပါတယ်။ ဒီကုဒ်လုပ်ခြင်းအားလုံးသည် သင့်ဘရောက်ဇာထဲတွင်သာ အလုပ်လုပ်ပြီး သင့်တိုကင်ကို BroBroGo ဆီသို့ မည်သည့်အခါမျှ ပေးပို့ခြင်းမရှိပါ။
မေး - ဤကိရိယာက လက်မှတ် (signature) ကို အတည်ပြုပေးပါသလား။
ဖြေ - မလုပ်ပေးပါ။ ၎င်းသည် သင့်အား ဖတ်ရှုနိုင်ရန် header နှင့် payload ကိုသာ ဒီကုဒ်လုပ်ပေးခြင်း ဖြစ်သည်။ လက်မှတ်ကို အတည်ပြုရန်အတွက် signing secret သို့မဟုတ် public key လိုအပ်ပြီး ဤကိရိယာသည် ၎င်းတို့ကို မည်သည့်အခါမျှ တောင်းဆိုမည်မဟုတ်ပါ။
မေး - ကျွန်ုပ်၏ တိုကင် သက်တမ်းကုန်ဆုံးသွားခြင်း ရှိမရှိ မည်သို့သိနိုင်သနည်း။
ဖြေ - ဒီကုဒ်ဒါသည် exp claim ကို ဖတ်ရှုပြီး ဒီကုဒ်လုပ်ထားသော တိုကင်ဘေးတွင် သက်တမ်းရှိသည်၊ သက်တမ်းကုန်ဆုံးသည်၊ သက်တမ်းမစသေးပါ သို့မဟုတ် သက်တမ်းကုန်ဆုံးရက်မရှိပါ စသည့် အခြေအနေပြတံဆိပ်ကို ပြသပေးပါသည်။