APIs တီထွင်သောအခါလုံခြုံရေးသည်အရေးပါသည်။ ခွင့်ပြုထားသောအသုံးပြုသူများသာတိကျသောအရင်းအမြစ်များကိုရယူနိုင်ရန်သေချာစေရန်ကျွန်ုပ်တို့သည်များသောအားဖြင့်စစ်မှန်ကြောင်းအတည်ပြုခြင်းနှင့်ခွင့်ပြုချက်ထိန်းချုပ်ရန်အတွက်တိုကင်ယန္တရားကိုအသုံးပြုလေ့ရှိသည်။ PHP တွင် header () function ကိုများသောအားဖြင့် http header သတင်းအချက်အလက်များကိုပို့ရန်အသုံးပြုလေ့ရှိပြီးတိုကင်အတည်ပြုချက်ကိုကိုင်တွယ်ရန်အသုံးပြုနိုင်သည်။ ဤဆောင်းပါးသည် PHP's header () function ကိုအသုံးပြုနည်းကို API ခွင့်ပြုချက်ထိန်းချုပ်ရန်နှင့်ပူးပေါင်းရန်မည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
တိုကင်သည် authentication နှင့်ခွင့်ပြုချက်အတွက်အသုံးပြုသောလုံခြုံရေးအထောက်အထားတစ်ခုဖြစ်သည်။ ဘုံတိုကင်အမျိုးအစားများတွင် JWT (JSON Web Token) နှင့် Oauth Token တို့ပါဝင်သည်။ သုံးစွဲသူမှ 0 န်ဆောင်မှုခံယူသူအားဝင်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ခြင်းကိုကူးယူပြီးနောက် Tokens ကို server မှထုတ်လုပ်သည်။
API ခွင့်ပြုချက်ထိန်းချုပ်ရေးအတွက်တိုကင်ကိုအသုံးပြုခြင်း၏အခြေခံဖြစ်စဉ်မှာအောက်ပါအတိုင်းဖြစ်သည် -
အသုံးပြုသူသည် API သို့တောင်းဆိုမှုတစ်ခုပို့ပြီးတိုကင်နှင့်ပါ 0 င်သည်။
ဆာဗာသည်တောင်းဆိုမှုကိုလက်ခံရရှိပြီးနောက်၎င်းသည်တောင်းဆိုမှုခေါင်းစဉ်တွင် Token ကိုဖတ်ရန် header () function ကိုအသုံးပြုသည်။
ဆာဗာသည်တိုကင်၏တရားဝင်မှုကိုစစ်ဆေးသည်။ အတည်ပြုဖြတ်သန်းသွားလျှင်သက်ဆိုင်ရာအရင်းအမြစ်များကိုရယူခွင့်ပြုသည်။ အတည်ပြုခြင်းမအောင်မြင်ပါကခွင့်ပြုချက်ကိုငြင်းပယ်ခံရသောတုံ့ပြန်မှုကိုပြန်ပို့သည်။
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 ကိုပြန်ပို့ပါ။
လက်ခဏာသက်သေပြစစ်ဆေးသည့်အခါတိုကင်၏ပါဝင်မှုသို့မဟုတ်လက်မှတ်အပေါ် အခြေခံ. စိစစ်အတည်ပြုသည်များသောအားဖြင့်လိုအပ်သည်။ ဤတွင်ကျွန်ုပ်တို့သည် 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 စာကြည့်တိုက်များကိုအသုံးပြုရန်အကြံပြုသည်။
အကယ်. တိုကင်အတည်ပြုချက်ပျက်ကွက်ပါက 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 ကိုကျွန်ုပ်တို့ခေါ်ဆိုသည်။
ယခင်လုပ်ဆောင်မှုများကိုပေါင်းစပ်ပြီး PHP တွင် API ခွင့်ပြုချက်ထိန်းချုပ်မှုကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုပြသသည့်အပြည့်အဝဥပမာတစ်ခုဖြစ်သည်။
<?php
// ရယူToken
$token = getAuthToken();
// မထောက်ပံ့လျှင်Token,直接ပြန်လာ401ခွင့်ပြုချက်မရှိသောတုန့်ပြန်မှု
if (!$token) {
sendUnauthorizedResponse();
}
// မှန်ကေြင်းဝန်ခံToken的အကျိုးဖြစ်ထွန်းစေနိုင်သော性
if (!validateToken($token)) {
sendUnauthorizedResponse();
}
// လှျင်Tokenအကျိုးဖြစ်ထွန်းစေနိုင်သော,ဆက်လက်လုပ်ဆောင်ရန်ဆက်လက်APIမေးမြန်း
echo json_encode(["message" => "APIမေးမြန်း成功,权限မှန်ကေြင်းဝန်ခံ通过"]);
?>
ဤအပြည့်အဝသည်အပြည့်အဝအပြည့်အဝကိုပထမ ဦး စွာတောင်းခံပါကပထမ ဦး စွာတောင်းပန်ပါ။ အကယ်. တိုကင်သည်မှန်ကန်ပါက API ၏စီးပွားရေးဆိုင်ရာယုတ္တိဗေဒကိုဆက်လက်လုပ်ဆောင်နေသည်။
PHP ၏ header () function မှတဆင့် token နှင့်ပေါင်းစပ်ထားသော function မှတဆင့်ကျွန်ုပ်တို့သည် API ခွင့်ပြုချက်ထိန်းချုပ်မှုကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။ အခြေခံအလုပ်ဖူးများပါဝင်သည်။
တောင်းဆိုချက်ကို header မှအမှတ်အသားကိုထုတ်ယူပါ။
အဆိုပါလက်ခဏာသက်သေ၏တရားဝင်မှုကိုအတည်ပြုပါ။
အတည်ပြုရလဒ်များအပေါ်အခြေခံပြီး API ကိုဝင်ရောက်ခွင့်ကိုခွင့်ပြုမထား,
ဤချဉ်းကပ်မှုသည် API ကိုထိရောက်စွာကာကွယ်သည်။