JWT (JSON Web Token) သည် Tope applications များတွင် Tokens တွင်လုံခြုံစွာလွှဲပြောင်းရန်အသုံးပြုသော Open standard (RFC 7519) ဖြစ်သည်။ ၎င်းကိုအသုံးပြုသူမည်သူမည်ဝါဖြစ်ကြောင်းအတည်ပြုခြင်းနှင့်ခွင့်ပြုချက်စီမံခန့်ခွဲမှုတွင်ကျယ်ပြန့်စွာအသုံးပြုသည်။ Php Php မူဘောင်တစ်ခုအနေဖြင့် ThinkPhp6 သည် JWT အသိအမှတ်ပြုဆောင်ရွက်ချက်များကိုပေါင်းစပ်ရန် developer များထံထူထောင်ရန်လွယ်ကူစေသည်။ ThinkPpP6 တွင် JWT authentication ကိုမည်သို့အကဲဖြတ်ရမည်ကိုဤဆောင်းပါးကတဖြည်းဖြည်းရှင်းပြပါမည်။
ပထမ ဦး စွာသင်သည် JWT-Related extension libraries များကိုတေးရေးဆရာမှတဆင့် install လုပ်ရန်လိုအပ်သည်။ စီမံကိန်း root directory ကိုရိုက်ထည့်ပြီး Terminal တွင်အောက်ပါ command ကို execute လုပ်ပါ။
<span class="fun">တေးရေးဆရာက Firebase / Php-jwt လိုအပ်သည်</span>
ထည့်သွင်းတပ်ဆင်မှုပြီးစီးပြီးနောက် JWT.php ဖိုင်ကို configurephp6 ၏ configuration directory တွင် ဖန်တီး. ပြင်ဆင်ပါ, အောက်ပါမာတိကာကိုပြင်ဆင်ပါ။
return [
'secret' => 'your_secret_key',
'algorithm' => 'HS256',
];
၎င်းတို့အနက် လျှို့ဝှက်ချက် သည်လက်မှတ်ထိုးရန်အသုံးပြုသောသော့ချက်ဖြစ်သည်, ကျပန်းကြိုးအဖြစ်သတ်မှတ်ရန်အကြံပြုသည်။ algorithm သည် HS256, HS384 သို့မဟုတ် HS512 ရှိသည့် engorithm algorithm ဖြစ်သည်။
Authentication Authentation Middle သည်တောင်းဆိုချက်မရောက်ရှိမီ JWT Token ကိုအတည်ပြုရန်အသုံးပြုသည်။ လျင်မြန်စွာထုတ်ပေးရန် command ကိုသုံးပါ။
<span class="fun">PHP Meter Make: MENDWAREWAREWEWEWEWEWEWEWEWEW</span>
ဤ command သည် app / middleware directory တွင် JWTMMNWEWEWEWEWEWEWEWERCH ဖိုင်ကိုရရှိမည်ဖြစ်သည်။
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 အမှတ်အသားကိုရယူပါ။ ထို့နောက်လက်ခဏာသက်သေ၏တရားဝင်မှုကိုစစ်ဆေးပါ, အတည်ပြုပြီးသည်နှင့်နောက်ဆက်တွဲတောင်းဆိုမှုကိုဆက်လက်လုပ်ဆောင်သွားမည်ဖြစ်သည်။
လမ်းကြောင်း / router.php တွင် authentication လိုအပ်သည့်လမ်းကြောင်းသို့ Middleward ကိုထည့်ပါ။
\think\Route::group(function () {
// authentication လိုအပ်သည့်လမ်းကြောင်းများ
})->middleware(\app\middleware\JwtMiddleware::class);
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 ကိုအကောင်အထည်ဖော်ခြင်းအားဖြင့်လျှောက်လွှာ၏လုံခြုံရေးကိုတိုးတက်ကောင်းမွန်အောင်ပြုလုပ်နိုင်ပြီးထိရောက်သောအသုံးပြုသူအထောက်အထားစီမံခန့်ခွဲမှုအောင်မြင်နိုင်သည်။