API med auktorisering i PHP
Det är möjligt att göra så att API:et inte är publikt, utan privat, endast tillgängligt med lösenord. I detta fall måste vi förutom parametrarna skicka med rätt lösenord i varje förfrågan till vårt API. Ett sådant lösenord kallas för token.
Användare av vårt API måste på något sätt få denna token. Till exempel, genom att köpa den. I detta fall kommer varje köpare att ha sin egen token.
Låt oss titta på hur man arbetar med tokens med ett exempel. Låt oss säga att vårt API tar emot ett nummer som parameter och returnerar squaren på det numret. Låt oss göra detta API privat. Låt oss börja implementera.
För enkelhetens skull börjar vi med att skapa en gemensam token och lagrar den i klartext i en fil:
<?php
$token = '12345';
?>
Så här kommer vi att anropa vårt API, och skicka parametern och token:
http://api.loc/index.php?num=100&token=12345
Låt oss implementera API:et med token-kontroll:
<?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';
}
?>
Skapa ett API som tar emot ett födelsedatum som parameter och returnerar antal dagar kvar till det datumet. Implementera auktorisering via token.
Modifiera den föregående uppgiften så att både parametern och token skickas via POST-metoden.
Modifiera den föregående uppgiften så
att token skickas via HTTP-huvudet
X-Token.
Gör så att tokens lagras i en databas och att varje användare av API:et har sin egen token.
Begränsa antalet förfrågningar per användare
till 10 per dag.