API թոկենով ավտորիզացիայով PHP-ում
Հնարավոր է այնպես անել, որ API-ն լինի ոչ թե հանրային, այլ փակ, հասանելի միայն գաղտնաբառով։ Այս դեպքում մեր API-ին դիմելիս յուրաքանչյուր հարցման մեջ պարամետրերից բացի անհրաժեշտ կլինի փոխանցել նաև ճիշտ գաղտնաբառը։ Այդպիսի գաղտնաբառը կոչվում է թոկեն։
Մեր API-ի օգտատերերը պետք է ինչ-որ կերպ ստանան այս թոկենը։ Օրինակ, գնեն այն։ Այս դեպքում յուրաքանչյուր գնորդ կունենա իր թոկենը։
Եկեք դիտարկենք թոկենների հետ աշխատանքը օրինակով։ Ենթադրենք, մեր API-ն պարամետրով կընդունի թիվ, և կվերադարձնի այդ թվի քառակուսին։ Եկեք այս API-ն դարձնենք փակ։ Սկսենք իրականացումից։
Սկզբից, պարզության համար, եկեք ստեղծենք մեկ ընդհանուր թոկեն և այն կպահենք բաց տեսքով ֆայլում։
<?php
$token = '12345';
?>
Ահա այսպես մենք կդիմենք մեր API-ին, փոխանցելով պարամետրը և թոկենը։
http://api.loc/index.php?num=100&token=12345
Եկեք իրականացնենք API թոկենի ստուգմամբ։
<?php
$token = '12345';
if (isset($_GET['token']) and $_GET['token'] === $token) {
if (isset($_GET['num'])) {
echo $_GET['num'] ** 2;
} else {
echo 'error';
}
} else {
echo 'incorrect token';
}
?>
Ստեղծեք API, որը պարամետրով կընդունի ծննդյան օրվա ամսաթիվը և կվերադարձնի թե քանի օր է մնացել այդ ամսաթվին։ Կատարեք ավտորիզացիա թոկենով։
Փոփոխեք նախորդ առաջադրանքն այնպես, որ և՛ պարամետրը, և՛ թոկենը փոխանցվեն POST մեթոդով։
Փոփոխեք նախորդ առաջադրանքն այնպես,
որ թոկենը փոխանցվի HTTP
վերնագրի միջոցով X-Token։
Այնպես արեք, որ թոկենները պահվեն տվյալների բազայում և API-ի յուրաքանչյուր օգտատեր ունենա իր թոկենը։
Սահմանափակեք յուրաքանչյուր API օգտատերի
հարցումների քանակը մինչև 10
օրում։