API s autorizáciou v PHP

Môžeme spraviť tak, aby bolo API nie verejné, ale súkromné, prístupné len s heslom. V tomto prípade pri prístupe k nášmu API bude potrebné v každej požiadavke okrem parametrov odovzdať aj správne heslo. Takéto heslo sa nazýva token.

Používatelia nášho API budú musieť získať tento token nejakým spôsobom. Napríklad kúpiť ho. V tomto prípade každý, kto si kúpi, bude mať svoj vlastný token.

Pozrime sa na prácu s tokenmi na príklade. Nech naše API ako parametrom prijíma číslo a vracia štvorec tohto čísla. Urobme toto API súkromným. Poďme na implementáciu.

Na začiatok pre jednoduchosť urobme jeden spoločný token a budeme ho uchovávať v otvorenej forme v súbore:

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

Takto budeme pristupovať k nášmu API, odovzdávajúc parameter a token:

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

Implementujme API s kontrolou tokenu:

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

Vytvorte API, ktoré parametrom bude prijímať dátum narodenín a vracať koľko dní zostáva do tohto dátumu. Vytvorte autorizáciu pomocou tokenu.

Задание 2

Upravte predchádzajúcu úlohu tak, aby sa parameter aj token odovzdávali metódou POST.

Задание 3

Upravte predchádzajúcu úlohu tak, aby sa token odovzdával prostredníctvom HTTP hlavičky X-Token.

Задание 4

Urobte tak, aby tokeny boli uložené v databáze a každý používateľ API mal svoj vlastný token.

Задание 5

Obmedzte každému používateľovi API počet požiadaviek na 10 za deň.