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
дневно.