JSON Web Token (JWT) သည် Network ပေါ်ရှိသတင်းအချက်အလက်များကိုလုံလုံခြုံခြုံထုတ်လွှင့်ရန် Open standard (RFC 7519) ဖြစ်သည်။ JWT တွင်အပိုင်းသုံးပိုင်း - header, payload နှင့်လက်မှတ်။ Header သည်များသောအားဖြင့်တိုကင်အမျိုးအစားများနှင့်အသုံးပြုသောလက်မှတ်အမျိုးအစားပါ 0 င်သည်။
TherPhp6 တွင် JWT authentication ကို The Myple-JWT အစိတ်အပိုင်းကိုမိတ်ဆက်ပေးခြင်းဖြင့်အကောင်အထည်ဖော်နိုင်သည်။ composer.json ဖိုင်ရှိသက်ဆိုင်ရာမှီခိုမှုများကိုသာထည့်ပြီး၎င်းကိုထည့်သွင်းပါ။
{
"တောင်းဆို": {
"Think-jwt": "1.0 ။ *"
}
}
တပ်ဆင်မှုပြီးဆုံးသွားသောအခါအောက်ပါကုဒ်ကို ဖြတ်. JWT authentication ကိုလုပ်ဆောင်နိုင်သည်။
TherePhp6 တွင် JWT ကို JWT အတန်းအစားမှတစ်ဆင့်ထုတ်လုပ်သည်။ ပထမ ဦး စွာ JWT အတွက်သက်ဆိုင်ရာ configuration ပစ္စည်းများပါ 0 င်သော `jwt.php ၏ configuration file တစ်ခုကိုဖန်တီးရန်လိုအပ်သည်။ ဤဖိုင်ကို `config` directory တွင်တည်ရှိသင့်သည်။
ပြန်လာ [
// လက်မှတ် key 'secret' => 'my_secret',
// သက်တမ်းကုန်ဆုံးချိန်, ယူနစ်သည်စက္ကန့်ပိုင်းဖြစ်သည်။ ပုံမှန်သည် 1 နာရီ 'သက်တမ်းကုန်' => 3600
];
ထို့နောက် JWT Class ကို Controller တွင်မိတ်ဆက်ပေးပါ။ jwt generate လုပ်ရန် `create` method ကိုခေါ်ပါ။
Think Photo \ JWT \ JWT ကိုသုံးပါ။
Class Userconttroller သည် Controller ကိုတိုးချဲ့သည်
{
Public function login ()
{
// အသုံးပြုသူအမည်နှင့်စကားဝှက်ကိုစစ်ဆေးပါ။
// jwt ထုတ်ပေး
$ payload = [
'user_id' => $ user-> ID
];
$ jwt = jwt :: ဖန်တီးခြင်း ($ payload),
ပြန်လာ ['Token' => $ jwt];
}
}
အထက်ပါကုဒ်တွင်အသုံးပြုသူအမည်နှင့်စကားဝှက်ကိုအတည်ပြုပြီးအတည်ပြုပြီးနောက် JWT ကိုထုတ်လုပ်ပြီး client သို့ပြန်ပို့ပါ။
TherfPP6 တွင် JWT ၏တရားဝင်မှုကို JWT အတန်းမှတစ်ဆင့်အတည်ပြုနိုင်သည်။ JWT လူတန်းစားကို Controller ထဲကိုမိတ်ဆက်ပေးပါ။ အတည်ပြုရန်အတွက် `verify's method ကိုခေါ်ပါ။
Think Photo \ JWT \ JWT ကိုသုံးပါ။
Class Userconttroller သည် Controller ကိုတိုးချဲ့သည်
{
အများပြည်သူ function ကိုပရိုဖိုင်း ()
{
// jwt အတည်ပြုရန်
$ jwt = input ('token');
$ payload = JWT :: Verify ($ jwt);
ပြန်လာ ['user_id' => $ payload ['user_id']]
}
}
အထက်ပါကုဒ်တွင် JWT ကို client မှပေးပို့သည်နှင့်အတည်ပြုရန်အတွက် `verify's method ကိုခေါ်ဆိုသည်။ အတည်ပြုအောင်မြင်ပြီးနောက် JWT တွင် payload data များကိုသင်ရရှိနိုင်သည်။
ဤဆောင်းပါးမှတစ်ဆင့် JWT ၏အခြေခံသဘောတရားများကိုကျွန်ုပ်တို့နားလည်ပြီး ThinkPhp6 တွင် Authentication အတွက် JWT ကိုမည်သို့အသုံးပြုရမည်ကိုကျွန်ုပ်တို့နားလည်ပါသည်။ JWT authentication သည်လုံခြုံမှုကိုထိရောက်စွာကာကွယ်နိုင်ပြီးခွင့်ပြုချက်မရှိဘဲဝင်ရောက်ခွင့်ကိုကာကွယ်နိုင်သည်။ Developer များသည်စီမံကိန်း၏လုံခြုံရေးယန္တရား၏လုံခြုံရေးနှင့်ပြောင်းလွယ်ပြင်လွယ်မှုများကိုသေချာစေရန်စီမံကိန်းလိုအပ်ချက်များအရ Configurations ကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။