API s autorizací v PHP
Lze nastavit, aby API nebylo veřejné, ale privátní, přístupné pouze s heslem. V tomto případě bude při přístupu k našemu API nutné v každém požadavku kromě parametrů předat správné heslo. Takovému heslu se říká token.
Uživatelé našeho API musí získat tento token nějakým způsobem. Například jej koupit. V tomto případě bude každý, kdo si koupí, mít svůj vlastní token.
Podívejme se na práci s tokeny na příkladu. Předpokládejme, že naše API bude přijímat číslo jako parametr a vracet druhou mocninu tohoto čísla. Udělejme toto API privátním. Pojďme k implementaci.
Pro začátek pro jednoduchost vytvoříme jeden společný token a budeme jej ukládat v otevřené podobě v souboru:
<?php
$token = '12345';
?>
Takhle budeme přistupovat k našemu API, předávajíce parametr a token:
http://api.loc/index.php?num=100&token=12345
Implementujme API s kontrolou tokenu:
<?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';
}
?>
Vytvořte API, které parametrem bude přijímat datum narození a vracet kolik dní zbývá do tohoto data. Implementujte autorizaci pomocí tokenu.
Upravte předchozí úlohu tak, aby se jak parametr, tak token předávaly metodou POST.
Upravte předchozí úlohu tak,
aby se token předával prostřednictvím HTTP
hlavičky X-Token.
Zařiďte, aby se tokeny ukládaly v databázi a každý uživatel API měl svůj vlastní token.
Omezte každému uživateli API
počet požadavků na 10
za den.