API z avtorizacijo v PHP

Lahko naredimo tako, da je API ne javen, ampak zaseben, dostopen samo z geslom. V tem primeru bomo morali pri dostopu do našega API-ja v vsakem poizvedovi poleg parametrov predati tudi pravilno geslo. Tako geslo imenujemo žeton.

Uporabniki našega API-ja bodo morali pridobiti ta žeton na nek način. Na primer, ga kupiti. V tem primeru bo vsak kupec imel svoj žeton.

Poglejmo si delo z žetoni na primeru. Naj naš API s parametrom sprejme število in vrne kvadrat tega števila. Naredimo ta API zaseben. Nadaljujmo z izvedbo.

Za začetek za enostavnost naredimo en skupni žeton in ga hranimo v odprti obliki v datoteki:

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

Tako se bomo obrnili na naš API, pri čemer posredujemo parameter in žeton:

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

Implementirajmo API s preverjanjem žetona:

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

Naredite API, ki bo s parametrom sprejelo datum rojstnega dne in vrnilo koliko dni je še do tega datuma. Naredite avtorizacijo prek žetona.

Задание 2

Spremenite prejšnjo nalogo tako, da se tako parameter kot žeton posredujeta z metodo POST.

Задание 3

Spremenite prejšnjo nalogo tako, da se žeton posreduje prek HTTP glave X-Token.

Задание 4

Naredite tako, da se žetoni hranijo v podatkovni bazi in ima vsak uporabnik API-ja svoj žeton.

Задание 5

Omejite vsakemu uporabniku API-ja število zahtevkov na 10 dnevno.