API su autorizacija PHP
Galima padaryti taip, kad API būtų ne viešas, o privatus, prieinamas tik su slaptažodžiu. Šiuo atveju kreipiantis į mūsų API kiekviename užklausoje, be parametrų, reikės perduoti teisingą slaptažodį. Toks slaptažodis vadinamas tokenu.
Mūsų API naudotojai turės gauti šį tokeną kažkokiu būdu. Pavyzdžiui, nusipirkti jį. Šiuo atveju kiekvienas pirkęs turės savo tokeną.
Pažiūrėkime į darbą su tokenais pavyzdžiu. Tarkime, mūsų API parametru priims skaičių, o grąžins to skaičiaus kvadratą. Padarykime šį API privatų. Pradėkime įgyvendinimą.
Pradėkime nuo paprastumo – sukurkime vieną bendrą tokeną ir laikykime jį atvirai failėje:
<?php
$token = '12345';
?>
Štai taip kreipsimės į mūsų API, perduodant parametrą ir tokeną:
http://api.loc/index.php?num=100&token=12345
Įgyvendinkime API su tokeno patikrinimu:
<?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';
}
?>
Sukurkite API, kuris parametru priims gimtadienio datą ir grąžins kiek dienų liko iki šios datos. Implementuokite autorizaciją per tokeną.
Modifikuokite ankstesnę užduotį taip, kad ir parametras, ir tokenas būtų perduodami POST metodu.
Modifikuokite ankstesnę užduotį taip,
kad tokenas būtų perduodamas per HTTP
antraštę X-Token.
Padarykite taip, kad tokenai būtų saugomi duomenų bazėje ir kiekvienas API naudotojas turėtų savo tokeną.
Apribokite kiekvienam API naudotojui
užklausų kiekį iki 10
per dieną.