DEV Community

Cover image for JWT Authentication and Role base authorization in DotNet8 MVC
Zin Linn Htet
Zin Linn Htet

Posted on

JWT Authentication and Role base authorization in DotNet8 MVC

JWT ဆိုတာကတော့ JSON Web Token လို့ခေါ်တဲ့ open source တစ်ခု ပဲ ဖြစ်ပါတယ်။ JWT ကိုအသုံးပြုပြီးတော့ DotNet8 MVC web application project တစ်ခုမှာဘယ်လို configure လုပ်မလဲဆိုတာပဲဖြစ်တယ်။

User တစ်ယောက်က login ဝင်ဖို့အတွက် Username နဲ့ Password ကို Input ရိုက်သွင်းပြီဆိုကြပါစို့။ ပုံမှန်ဆိုရင် Local Storage ကို သုံးပြီး အဲ့ဒီ userရိုက်ထည့်လိုက်တဲ့ Informations တွေကိုသိမ်းလေ့ရှိပါတယ်။အခုမှာတော့ JWT token တစ်ခုထုတ်ပြီး Cookiesမှာသွားသိမ်းထားမှာပါ။ အဲ့ဒီ token နဲ့ အတူပဲ standard သက်မှတ်ချက်အရ Admin, User စသဖြင့် role တွေ JWT claim ကို အသုံးပြုပြီးတော့ ခွဲလို့ရပါတယ်။
Microsoft.AspDotNetCore.Authentication.JwtBearer ဆိုတဲ့
Nuget package ကိုပထမဆုံးinstall ရပါမယ်။ပြီးရင်တော့ JWT အသုံးပြုဖို့ အောက်ပါအတိုင်းService add ရမှာဖြစ်ပါတယ်။
Image description
ပြီးရင်တော့ add ထားတဲ့ Services နှစ်ခုကိုပြန်သုံးဖို့အောက်ပါအတိုင်းကြေညာပေးရပါတယ်။
Image description
ပြီးရင် JWT Key နဲ့ issuer အတွက် appsetting.json ထဲမှာ ထည့်ပေးရမှာပါ။
Key အတွက်ကတော့ 128 bytes အတွက် Character and Number 32 လုံး mix လုပ်ပြီးထည့်ပေးရင်ရပါတယ်။ Issuerအတွက်ကတော့ သက်ဆိုင်ရာ Domain ကိုထည့်ပေးရမှာပါ။
ပြီးရင်တော့ Controller တစ်ခုနဲ့ User Informationလက်ခံဖို့အတွက် Model တစ်ခုဆောက်ပါမယ်။ပြီးရင် token Generate လုပ်ပေးတဲ့codeကိုရေးရမှာပါ။ In this token generation , the respective claims are all set. You can add claims according to your necessities.
Image description
Controller မှာလိုအပ်တဲ့ Logicတွေ Implement လုပ်ပြီးတာနဲ့
Image description
Image description
Token မှာ ဘာပါလဲ စစ်တဲ့ Middleware တစ်ခု ရေးပေးပါမယ်။
Image description
Middleware သုံးဖို့ Service မကြေညာခင်မှာ Path ကို Specify လုပ်ပေးမဲ့ code တစ်စုကို အရင်ကြေညာရပါဦးမယ်။
Image description
ပြီးရင်တော့ Service add ပြီး ကြေညာပေးရပါမယ်။

Image description
Image description
Ready! You're good to go.
သက်ဆိုင်ရာ Method တွေမှာ Role တွေထည့်ပြီး အသုံးပြုလို့ရပါပြီ။

Top comments (0)