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:

api.loc/index.php<?php
  $token = '12345';
?>

Slik vil vi kontakte vårt API, ved å sende parameter og token:

urlhttp://api.loc/index.php?num=100&token=12345

La oss implementere APIet med tokensjekk:

api.loc/index.php<?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';
  }
  
?>
Задание 1

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.

Задание 2

Modifiser den forrige oppgaven slik at både parameter og token sendes via POST-metoden.

Задание 3

Modifiser den forrige oppgaven slik at token sendes gjennom HTTP- headeren X-Token.

Задание 4

Gjør slik at tokens lagres i en database og at hver bruker av APIet har sin egen token.

Задание 5

Begrens antall forespørsler per bruker til APIet til 10 per dag.