လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> API ခွင့်ပြုချက်ကိုအကောင်အထည်ဖော်ရန် Token နှင့်ပူးပေါင်းရန် header () ကိုအသုံးပြုပါ

API ခွင့်ပြုချက်ကိုအကောင်အထည်ဖော်ရန် Token နှင့်ပူးပေါင်းရန် header () ကိုအသုံးပြုပါ

M66 2025-05-17

APIs တီထွင်သောအခါလုံခြုံရေးသည်အရေးပါသည်။ ခွင့်ပြုထားသောအသုံးပြုသူများသာတိကျသောအရင်းအမြစ်များကိုရယူနိုင်ရန်သေချာစေရန်ကျွန်ုပ်တို့သည်များသောအားဖြင့်စစ်မှန်ကြောင်းအတည်ပြုခြင်းနှင့်ခွင့်ပြုချက်ထိန်းချုပ်ရန်အတွက်တိုကင်ယန္တရားကိုအသုံးပြုလေ့ရှိသည်။ PHP တွင် header () function ကိုများသောအားဖြင့် http header သတင်းအချက်အလက်များကိုပို့ရန်အသုံးပြုလေ့ရှိပြီးတိုကင်အတည်ပြုချက်ကိုကိုင်တွယ်ရန်အသုံးပြုနိုင်သည်။ ဤဆောင်းပါးသည် PHP's header () function ကိုအသုံးပြုနည်းကို API ခွင့်ပြုချက်ထိန်းချုပ်ရန်နှင့်ပူးပေါင်းရန်မည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ အတိုချုပ်ဆိုသည်မှာအဘယ်နည်း။

တိုကင်သည် authentication နှင့်ခွင့်ပြုချက်အတွက်အသုံးပြုသောလုံခြုံရေးအထောက်အထားတစ်ခုဖြစ်သည်။ ဘုံတိုကင်အမျိုးအစားများတွင် JWT (JSON Web Token) နှင့် Oauth Token တို့ပါဝင်သည်။ သုံးစွဲသူမှ 0 န်ဆောင်မှုခံယူသူအားဝင်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ခြင်းကိုကူးယူပြီးနောက် Tokens ကို server မှထုတ်လုပ်သည်။

2 ။ API ခွင့်ပြုချက်ထိန်းချုပ်မှု၏အခြေခံဖြစ်စဉ်ကို

API ခွင့်ပြုချက်ထိန်းချုပ်ရေးအတွက်တိုကင်ကိုအသုံးပြုခြင်း၏အခြေခံဖြစ်စဉ်မှာအောက်ပါအတိုင်းဖြစ်သည် -

  1. အသုံးပြုသူသည် API သို့တောင်းဆိုမှုတစ်ခုပို့ပြီးတိုကင်နှင့်ပါ 0 င်သည်။

  2. ဆာဗာသည်တောင်းဆိုမှုကိုလက်ခံရရှိပြီးနောက်၎င်းသည်တောင်းဆိုမှုခေါင်းစဉ်တွင် Token ကိုဖတ်ရန် header () function ကိုအသုံးပြုသည်။

  3. ဆာဗာသည်တိုကင်၏တရားဝင်မှုကိုစစ်ဆေးသည်။ အတည်ပြုဖြတ်သန်းသွားလျှင်သက်ဆိုင်ရာအရင်းအမြစ်များကိုရယူခွင့်ပြုသည်။ အတည်ပြုခြင်းမအောင်မြင်ပါကခွင့်ပြုချက်ကိုငြင်းပယ်ခံရသောတုံ့ပြန်မှုကိုပြန်ပို့သည်။

3 ။ header () function ကိုသုံးရန် header header ကိုအသုံးပြုပါ

PHP တွင် HTTP တောင်းဆိုမှုကို header ကို $ _server ( သို့ ) Getalsheaders () function ကိုမှတဆင့်ရနိုင်သည်။ ကျွန်ုပ်တို့သည် Token အမည်ရှိ ခွင့်ပြုချက်ကို တောင်းဆိုမှုခေါင်းစဉ်မှအမည်ရှိခွင့်ပြုချက်ကိုရလိုသည်ဆိုပါစို့။ ရိုးရှင်းသောဥပမာတစ်ခုရှိသည်။

 <?php
// ရယူAuthorizationဦး ခေါင်း၌တToken
function getAuthToken() {
    if (isset($_SERVER['HTTP_AUTHORIZATION'])) {
        return $_SERVER['HTTP_AUTHORIZATION'];
    }
    return null;
}
?>

Getauthtenoken () function သည် လုပ်ပိုင်ခွင့် ခေါင်းစီးတည်ရှိခြင်းရှိမရှိစစ်ဆေးသည်။ မတည်ရှိပါက Null ကိုပြန်ပို့ပါ။

4 ။ အဆိုပါတိုကင်၏တရားဝင်မှုကိုစစ်ဆေးပါ

လက်ခဏာသက်သေပြစစ်ဆေးသည့်အခါတိုကင်၏ပါဝင်မှုသို့မဟုတ်လက်မှတ်အပေါ် အခြေခံ. စိစစ်အတည်ပြုသည်များသောအားဖြင့်လိုအပ်သည်။ ဤတွင်ကျွန်ုပ်တို့သည် JWT (JSON Web Token) ကိုတိုကင်အတည်ပြုရန်အတွက် jwt (JSON web token) ကိုအသုံးပြုရန်ယူဆသည်။ ဤတွင်ရိုးရှင်းသောအတည်ပြုခြင်းလုပ်ငန်းစဉ်ကိုဤတွင်ဖော်ပြထားသည်။

 <?php
// ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်အတည်ပြုရန်JWT Token
function validateToken($token) {
    $secret_key = "your-secret-key";  // ကြိုတင်ပြင်ဆင်,အတည်ပြုသည်Token

    // ရိုးရှင်းတဲ့တစ်ခုကဒီမှာသုံးတယ်JWTခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်အတည်ပြုရန်过程,တကယ်တော့အဆင်သင့်လုပ်ထားတဲ့စာကြည့်တိုက်တွေလိုပဲ Firebase JWT
    // ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်
    try {
        // ယူဆချက်Tokenပုံစံဖြစ်ပါတယ် "header.payload.signature"
        $parts = explode('.', $token);
        if (count($parts) !== 3) {
            throw new Exception("Tokenပုံစံအတွက်အမှား");
        }

        // ခြင်း simulation စိစစ်အတည်ပြုToken(အမှန်တကယ် application တွင်၎င်းကိုစာဝှက်ဖြည်နိုင်ပါသည်Tokenနှင့်လက်မှတ်အတည်ပြုရန်)
        $payload = base64_decode($parts[1]);
        $payload_data = json_decode($payload, true);
        if (!$payload_data || !isset($payload_data['exp']) || $payload_data['exp'] < time()) {
            throw new Exception("Tokenသက်တမ်းကုန်သော");
        }

        // Tokenအကျိုးဖြစ်ထွန်းစေနိုင်သော
        return true;
    } catch (Exception $e) {
        // အမှားတစ်ခုဖြစ်ပေါ်သည့်အခါပြန်လာပါfalse
        return false;
    }
}
?>

အထက်ဖော်ပြပါကုဒ်များတွင် Token သည် jwt token ကိုဖြိုခွဲခြင်းနှင့်ငွေပေးချေမှုကိုစစ်ဆေးခြင်းဖြင့်တရားဝင်သည်ရှိမရှိဆုံးဖြတ်သည်။ အမှန်တကယ်ထုတ်လုပ်မှုပတ်ဝန်းကျင်တွင်တိုကင်အတည်ပြုချက်ကိုကိုင်တွယ်ရန်ရင့်ကျက်သော JWT စာကြည့်တိုက်များကိုအသုံးပြုရန်အကြံပြုသည်။

5 ။ တုံ့ပြန်မှုကိုပေးပို့ရန် header () function ကိုသုံးပါ

အကယ်. တိုကင်အတည်ပြုချက်ပျက်ကွက်ပါက 401 (ခွင့်ပြုချက်မရှိဘဲ) 403 ကဲ့သို့သောသက်ဆိုင်ရာ http status ကုဒ်ကိုပြန်ပို့ရန် header () function ကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်:

 <?php
// ပြန်လာ401ခွင့်ပြုချက်မရှိသောတုန့်ပြန်မှု
function sendUnauthorizedResponse() {
    header("HTTP/1.1 401 Unauthorized");
    header("Content-Type: application/json");
    echo json_encode(["error" => "ခွင့်ပြုချက်မရှိဘဲဝင်ရောက်ခြင်း,请提供အကျိုးဖြစ်ထွန်းစေနိုင်သော的Token"]);
    exit();
}
?>

Token စိစစ်အတည်ပြုမှုမအောင်မြင်ပါကပေးပို့ခွင့်မရှိသောတုန့်ပြန်မှု 401 ခုကိုပေးပို့ရန်နှင့်အမှားသတင်းအချက်အလက်များကိုပေးရန် SendunauthorizeVonse () function ကိုကျွန်ုပ်တို့ခေါ်ဆိုသည်။

6 ။ ဥပမာဥပမာ - API ခွင့်ပြုချက်ထိန်းချုပ်မှု

ယခင်လုပ်ဆောင်မှုများကိုပေါင်းစပ်ပြီး PHP တွင် API ခွင့်ပြုချက်ထိန်းချုပ်မှုကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုပြသသည့်အပြည့်အဝဥပမာတစ်ခုဖြစ်သည်။

 <?php
// ရယူToken
$token = getAuthToken();

// မထောက်ပံ့လျှင်Token,直接ပြန်လာ401ခွင့်ပြုချက်မရှိသောတုန့်ပြန်မှု
if (!$token) {
    sendUnauthorizedResponse();
}

// မှန်ကေြင်းဝန်ခံToken的အကျိုးဖြစ်ထွန်းစေနိုင်သော性
if (!validateToken($token)) {
    sendUnauthorizedResponse();
}

// လှျင်Tokenအကျိုးဖြစ်ထွန်းစေနိုင်သော,ဆက်လက်လုပ်ဆောင်ရန်ဆက်လက်APIမေးမြန်း
echo json_encode(["message" => "APIမေးမြန်း成功,权限မှန်ကေြင်းဝန်ခံ通过"]);
?>

ဤအပြည့်အဝသည်အပြည့်အဝအပြည့်အဝကိုပထမ ဦး စွာတောင်းခံပါကပထမ ဦး စွာတောင်းပန်ပါ။ အကယ်. တိုကင်သည်မှန်ကန်ပါက API ၏စီးပွားရေးဆိုင်ရာယုတ္တိဗေဒကိုဆက်လက်လုပ်ဆောင်နေသည်။

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

PHP ၏ header () function မှတဆင့် token နှင့်ပေါင်းစပ်ထားသော function မှတဆင့်ကျွန်ုပ်တို့သည် API ခွင့်ပြုချက်ထိန်းချုပ်မှုကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။ အခြေခံအလုပ်ဖူးများပါဝင်သည်။

  1. တောင်းဆိုချက်ကို header မှအမှတ်အသားကိုထုတ်ယူပါ။

  2. အဆိုပါလက်ခဏာသက်သေ၏တရားဝင်မှုကိုအတည်ပြုပါ။

  3. အတည်ပြုရလဒ်များအပေါ်အခြေခံပြီး API ကိုဝင်ရောက်ခွင့်ကိုခွင့်ပြုမထား,

ဤချဉ်းကပ်မှုသည် API ကိုထိရောက်စွာကာကွယ်သည်။