လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ThinkPhp6 သည် JWT authentication အသေးစိတ်ရှင်းလင်းချက်ကိုအကောင်အထည်ဖော်ခြင်း,

ThinkPhp6 သည် JWT authentication အသေးစိတ်ရှင်းလင်းချက်ကိုအကောင်အထည်ဖော်ခြင်း,

gitbox 2025-08-02

နိဒါန်း

JWT (JSON Web Token) သည် Tope applications များတွင် Tokens တွင်လုံခြုံစွာလွှဲပြောင်းရန်အသုံးပြုသော Open standard (RFC 7519) ဖြစ်သည်။ ၎င်းကိုအသုံးပြုသူမည်သူမည်ဝါဖြစ်ကြောင်းအတည်ပြုခြင်းနှင့်ခွင့်ပြုချက်စီမံခန့်ခွဲမှုတွင်ကျယ်ပြန့်စွာအသုံးပြုသည်။ Php Php မူဘောင်တစ်ခုအနေဖြင့် ThinkPhp6 သည် JWT အသိအမှတ်ပြုဆောင်ရွက်ချက်များကိုပေါင်းစပ်ရန် developer များထံထူထောင်ရန်လွယ်ကူစေသည်။ ThinkPpP6 တွင် JWT authentication ကိုမည်သို့အကဲဖြတ်ရမည်ကိုဤဆောင်းပါးကတဖြည်းဖြည်းရှင်းပြပါမည်။

JWT extension ကို install လုပ်ပါ

တေးရေးဆရာကိုအသုံးပြုပြီးတိုးချဲ့စာကြည့်တိုက်ကို install လုပ်ပါ

ပထမ ဦး စွာသင်သည် JWT-Related extension libraries များကိုတေးရေးဆရာမှတဆင့် install လုပ်ရန်လိုအပ်သည်။ စီမံကိန်း root directory ကိုရိုက်ထည့်ပြီး Terminal တွင်အောက်ပါ command ကို execute လုပ်ပါ။

 <span class="fun">တေးရေးဆရာက Firebase / Php-jwt လိုအပ်သည်</span>

jwt parameters တွေကို configure

ထည့်သွင်းတပ်ဆင်မှုပြီးစီးပြီးနောက် JWT.php ဖိုင်ကို configurephp6 ၏ configuration directory တွင် ဖန်တီး. ပြင်ဆင်ပါ, အောက်ပါမာတိကာကိုပြင်ဆင်ပါ။

 return [
    'secret'    => 'your_secret_key',
    'algorithm' => 'HS256',
];

၎င်းတို့အနက် လျှို့ဝှက်ချက် သည်လက်မှတ်ထိုးရန်အသုံးပြုသောသော့ချက်ဖြစ်သည်, ကျပန်းကြိုးအဖြစ်သတ်မှတ်ရန်အကြံပြုသည်။ algorithm သည် HS256, HS384 သို့မဟုတ် HS512 ရှိသည့် engorithm algorithm ဖြစ်သည်။

အသိအမှတ်ပြုလက်မှတ်ကိုဖန်တီးပါ

Middleware Class ကိုဖန်တီးပါ

Authentication Authentation Middle သည်တောင်းဆိုချက်မရောက်ရှိမီ JWT Token ကိုအတည်ပြုရန်အသုံးပြုသည်။ လျင်မြန်စွာထုတ်ပေးရန် command ကိုသုံးပါ။

 <span class="fun">PHP Meter Make: MENDWAREWAREWEWEWEWEWEWEWEWEW</span>

ဤ command သည် app / middleware directory တွင် JWTMMNWEWEWEWEWEWEWEWERCH ဖိုင်ကိုရရှိမည်ဖြစ်သည်။

Middleware Logic ရေးသားခြင်း

jwtmmmmidware file နှင့် authentication ကိုဖြည့်စွက်ပါ။

 use think\facade\Request;
use think\facade\Response;
use Firebase\JWT\JWT;

class JwtMiddleware
{
    public function handle($request, \Closure $next)
    {
        $token = Request::header('Authorization');
        
        if (empty($token)) {
            return Response::create('Unauthorized', '401');
        }
        
        try {
            JWT::decode($token, config('jwt.secret'), [config('jwt.algorithm')]);
        } catch (\Exception $e) {
            return Response::create('Invalid token', '401');
        }
        
        return $next($request);
    }
}

Code တွင် jwt token ကိုတောင်းဆိုမှုခေါင်းစဉ်မှ JWT အမှတ်အသားကိုရယူပါ။ ထို့နောက်လက်ခဏာသက်သေ၏တရားဝင်မှုကိုစစ်ဆေးပါ, အတည်ပြုပြီးသည်နှင့်နောက်ဆက်တွဲတောင်းဆိုမှုကိုဆက်လက်လုပ်ဆောင်သွားမည်ဖြစ်သည်။

application middleware

routing အတွက်လျှောက်လွှာ

လမ်းကြောင်း / router.php တွင် authentication လိုအပ်သည့်လမ်းကြောင်းသို့ Middleward ကိုထည့်ပါ။

 \think\Route::group(function () {
    // authentication လိုအပ်သည့်လမ်းကြောင်းများ
})->middleware(\app\middleware\JwtMiddleware::class);

Controller အတွက်လျှောက်လွှာ

Controller Class Andotations တွင်လည်းအပြင်းအထန်ထုတ်ပြန်နိုင်သည်။

 namespace app\controller;

use think\annotation\route\Post;
use app\middleware\JwtMiddleware;

/**
 * @route("auth")
 * @middleware(JwtMiddleware::class)
 */
class AuthController
{
    // Controller Code
}

ဤနည်းအားဖြင့် Controller ရှိလမ်းကြောင်းအားလုံးသည် JWT authentication ကိုအလိုအလျောက်ဖြတ်သန်းလိမ့်မည်။

စမ်းသပ်ဝိသေသလက်ခဏာစစ်မှန်ကြောင်းစမ်းသပ်ခြင်း

configuration ကိုပြီးစီးပြီးနောက် postman သို့မဟုတ်အခြား interface test ကိရိယာများကို အသုံးပြု. interface ကိုပုံမှန်အားဖြင့်တုံ့ပြန်ရန်မှန်ကန်သော JWT Token နှင့်တောင်းဆိုရန်အသုံးပြုပါ။ မမှန်ကန်တဲ့သို့မဟုတ်ပျောက်ဆုံးနေသောလက်ခဏာသက်သေဖြစ်သည့်အခါ 401 ခွင့်ပြုချက်မရှိဘဲအမှားကိုပြန်ပေးသင့်သည်။

အကျဉ်းချုပ်

ဤဆောင်းပါးက JWT authentication ကို ThinkPpP6 မူဘောင်တွင်မည်သို့ပေါင်းစပ်ရမည်ကိုဖော်ပြသည်။ ၎င်းသည်တိုးချဲ့ထားသောတပ်ဆင်ခြင်း, ပြင်ဆင်ခြင်း, စစ်မှန်ကြောင်းအထောက်အထားပြသခြင်းအကြောင်း, JWT authentication ကိုအကောင်အထည်ဖော်ခြင်းအားဖြင့်လျှောက်လွှာ၏လုံခြုံရေးကိုတိုးတက်ကောင်းမွန်အောင်ပြုလုပ်နိုင်ပြီးထိရောက်သောအသုံးပြုသူအထောက်အထားစီမံခန့်ခွဲမှုအောင်မြင်နိုင်သည်။