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