API med autentisering i PHP
Det er mulig å gjøre APIet ikke offentlig, men privat, tilgjengelig kun med passord. I dette tilfellet må vi ved henvendelse til vårt API i hver forespørsel, i tillegg til parametere, sende med riktig passord. Et slikt passord kalles token.
Brukerne av vårt API må få denne tokenen på en eller annen måte. For eksempel ved å kjøpe den. I dette tilfellet vil hver kjøper ha sin egen token.
La oss se på arbeidet med tokens med et eksempel. La vårt API ta imot et tall som parameter, og returnere kvadratet av dette tallet. La oss gjøre dette APIet privat. La oss starte implementeringen.
Til å begynne med, for enkelthets skyld, lager vi en felles token og lagrer den åpent i en fil:
<?php
$token = '12345';
?>
Slik vil vi kontakte vårt API, ved å sende parameter og token:
http://api.loc/index.php?num=100&token=12345
La oss implementere APIet med tokensjekk:
<?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';
}
?>
Lag et API som vil ta imot fødselsdato som parameter og returnere hvor mange dager som gjenstår til denne datoen. Implementer autentisering via token.
Modifiser den forrige oppgaven slik at både parameter og token sendes via POST-metoden.
Modifiser den forrige oppgaven slik at
token sendes gjennom HTTP-
headeren X-Token.
Gjør slik at tokens lagres i en database og at hver bruker av APIet har sin egen token.
Begrens antall forespørsler per bruker
til APIet til 10
per dag.