API z autoryzacją w PHP

Można sprawić, aby API było nie publiczne, a prywatne, dostępne tylko za pomocą hasła. W tym przypadku przy odwoływaniu się do naszego API w każdym żądaniu oprócz parametrów trzeba będzie przekazać poprawne hasło. Takie hasło nazywa się tokenem.

Użytkownicy naszego API będą musieli uzyskać ten token w jakiś sposób. Na przykład, kupić go. W tym przypadku każdy kupujący będzie miał swój token.

Spójrzmy na pracę z tokenami na przykładzie. Niech nasze API parametrem będzie przyjmować liczbę, a zwracać kwadrat tej liczby. Sprawmy, aby to API było prywatne. Przystąpmy do realizacji.

Na początek dla prostoty zróbmy jeden wspólny token i przechowujmy go w otwartej formie w pliku:

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

W ten sposób będziemy odwoływać się do naszego API, przekazując parametr i token:

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

Zaimplementujmy API z weryfikacją tokena:

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

Stwórz API, które parametrem będzie przyjmować datę urodzin i zwracać ile dni pozostało do tej daty. Zrób autoryzację za pomocą tokena.

Задание 2

Zmodyfikuj poprzednie zadanie tak, aby zarówno parametr, jak i token były przekazywane metodą POST.

Задание 3

Zmodyfikuj poprzednie zadanie tak, aby token był przekazywany przez nagłówek HTTP X-Token.

Задание 4

Spraw, aby tokeny były przechowywane w bazie danych i aby każdy użytkownik API miał swój token.

Задание 5

Ogranicz każdemu użytkownikowi API liczbę zapytań do 10 dziennie.