လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ThinkPpP6 တွင် JWT အသိအမှတ်ပြုလက်မှတ်ကိုအကောင်အထည်ဖော်ခြင်း - ပြည့်စုံသောသင်ခန်းစာများနှင့်လက်တွေ့ကျသောကုဒ်များ

ThinkPpP6 တွင် JWT အသိအမှတ်ပြုလက်မှတ်ကိုအကောင်အထည်ဖော်ခြင်း - ပြည့်စုံသောသင်ခန်းစာများနှင့်လက်တွေ့ကျသောကုဒ်များ

gitbox 2025-06-18

1 ။ jwt ကဘာလဲ

JSON Web Token (JWT) သည် Network ပေါ်ရှိသတင်းအချက်အလက်များကိုလုံလုံခြုံခြုံထုတ်လွှင့်ရန် Open standard (RFC 7519) ဖြစ်သည်။ JWT တွင်အပိုင်းသုံးပိုင်း - header, payload နှင့်လက်မှတ်။ Header သည်များသောအားဖြင့်တိုကင်အမျိုးအစားများနှင့်အသုံးပြုသောလက်မှတ်အမျိုးအစားပါ 0 င်သည်။

2 ။ ThinkPhp6 အတွက် JWT ၏အသုံးပြုမှု

TherPhp6 တွင် JWT authentication ကို The Myple-JWT အစိတ်အပိုင်းကိုမိတ်ဆက်ပေးခြင်းဖြင့်အကောင်အထည်ဖော်နိုင်သည်။ composer.json ဖိုင်ရှိသက်ဆိုင်ရာမှီခိုမှုများကိုသာထည့်ပြီး၎င်းကိုထည့်သွင်းပါ။

{
    "တောင်းဆို": {
        "Think-jwt": "1.0 ။ *"
    }
}

တပ်ဆင်မှုပြီးဆုံးသွားသောအခါအောက်ပါကုဒ်ကို ဖြတ်. JWT authentication ကိုလုပ်ဆောင်နိုင်သည်။

2.1 jwt ထုတ်ပေးပါ

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 သို့ပြန်ပို့ပါ။

2.2 jwt စစ်ဆေးပါ

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 များကိုသင်ရရှိနိုင်သည်။

3 ။ အကျဉ်းချုပ်

ဤဆောင်းပါးမှတစ်ဆင့် JWT ၏အခြေခံသဘောတရားများကိုကျွန်ုပ်တို့နားလည်ပြီး ThinkPhp6 တွင် Authentication အတွက် JWT ကိုမည်သို့အသုံးပြုရမည်ကိုကျွန်ုပ်တို့နားလည်ပါသည်။ JWT authentication သည်လုံခြုံမှုကိုထိရောက်စွာကာကွယ်နိုင်ပြီးခွင့်ပြုချက်မရှိဘဲဝင်ရောက်ခွင့်ကိုကာကွယ်နိုင်သည်။ Developer များသည်စီမံကိန်း၏လုံခြုံရေးယန္တရား၏လုံခြုံရေးနှင့်ပြောင်းလွယ်ပြင်လွယ်မှုများကိုသေချာစေရန်စီမံကိန်းလိုအပ်ချက်များအရ Configurations ကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။