JWT (JSON Web Token) သည် network application များအကြားလုံခြုံသောသတင်းအချက်အလက်များကိုဖြတ်သန်းရန်အသုံးပြုသော encryption token ဖြစ်သည်။ ၎င်းသည် client နှင့် server အကြားရှိ JSON ရုပ်ဝတ်ထုပုံစံဖြင့်သတင်းအချက်အလက်များကိုလုံခြုံစွာထုတ်လွှင့်သည်။
JWT တွင်အစိတ်အပိုင်းသုံးပိုင်း - header, payload နှင့် signature ပါဝင်သည်။
Header: Token ၏အမျိုးအစားနှင့် encryption algorithm ကိုကြေငြာသည်။ ဥပမာ -
{
"alg": "HS256",
"typ": "JWT"
}
Payload: စံသတ်မှတ်ထားသောကြေငြာချက်များနှင့်စိတ်ကြိုက်ကြေငြာချက်များပါ 0 င်သည်။ ဥပမာ -
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}
Signature - Base64 encloading header နှင့် payload နှင့်အတူ payload ကိုလက်မှတ်ထိုးခြင်းဖြင့် Generate ။
Therephp6 တွင် JWT Verification ကိုအသုံးပြုရန်အတွက် JWT extension ကို install လုပ်ရန်လိုအပ်သည်။ စီမံကိန်းလမ်းညွှန်တွင် composer.json ဖိုင်တွင်အောက်ပါမှီခိုချက်များကိုထည့်ပါ။
"require": {
"firebase/php-jwt": "5.0.0"
}
ထို့နောက် JWT extension ကို install လုပ်ရန် composer install commin ကို run ပါ။
အောင်မြင်စွာဝင်ရောက်ပြီးနောက်တွင်ကျွန်ုပ်တို့သည်လက်ခဏာသက်သေပြပြီး client သို့ပြန်ပို့နိုင်သည်။ နမူနာကုဒ်:
use think\jwt\JWT;
public function login() {
// လော့ဂ်အင်လုပ်ပါ
$payload = [
'sub' => $user->id,
'name' => $user->username,
'iat' => time()
];
$token = JWT::encode($payload, $key);
return json(['token' => $token]);
}
အသုံးပြုသူ၏မည်သူမည်ဝါဖြစ်ကြောင်းအတည်ပြုရန်သင်မည်သည့်နေရာတွင်မဆိုသင်တိုကင်၏တရားဝင်မှုကိုအတည်ပြုရန် JWT ကိုသုံးနိုင်သည်။ နမူနာကုဒ်:
use think\jwt\JWT;
public function getUser(Request $request) {
$token = $request->header('Authorization');
try {
$payload = JWT::decode($token, $key, ['HS256']);
$user = User::get($payload->sub); // အသုံးပြုသူအချက်အလက်များကိုဒေတာဘေ့စ်မှရယူပါ
return json($user);
} catch (Exception $e) {
return json(['error' => 'Token is invalid']);
}
}
JWT သည်အဆင်ပြေလွယ်ကူပြီးလုံခြုံသော authentication နည်းလမ်းဖြစ်သည်။ MeterPhpP6 တွင် JWT authentication ကိုအကောင်အထည်ဖော်ရန်အလွန်ရိုးရှင်းပါသည်။ Tokens ထုတ်လုပ်ခြင်းနှင့်အတည်ပြုခြင်းလုပ်ငန်းစဉ်မှတဆင့်အသုံးပြုသူ၏မည်သူမည်ဝါဖြစ်ကြောင်းထိရောက်စွာကာကွယ်နိုင်သည်။ တစ်ချိန်တည်းမှာပင်လျှို့ဝှက်သော့ချက်ကိုကာကွယ်ခြင်းနှင့်သင့်တင့်သောတိုကင်၏သက်တမ်းကုန်ဆုံးချိန်ကိုအကာအကွယ်ပေးခြင်းသည်စနစ်လုံခြုံရေးကိုပိုမိုမြှင့်တင်ပေးနိုင်သည်။