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