API з аўтарызацыяй у PHP

Можна зрабіць так, каб API было не публічным, а закрытым, даступным толькі па паролю. У гэтым выпадку пры звароце да нашага API ў кожным запыце акрамя параметраў трэба будзе перадаць правільны пароль. Такі пароль завецца токенам.

Карыстальнікі нашага API павінны будуць атрымаць гэты токен якім-небудзь чынам. Напрыклад, купіць яго. У гэтым выпадку ў кожнага купіўшага будзе свой токен.

Давайце паглядзім працу з токенамі на прыкладзе. Хай наша API параметрам будзе прымаць лік, а вяртаць квадрат гэтага ліку. Давайце зробім гэта API закрытым. Прыступім да рэалізацыі.

Для пачатку для прастаты зробім адзін агульны токен і будзем захоўваць яго ў адкрытым выглядзе ў файле:

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

Вось так мы будзем звяртацца да нашага API, перадаючы параметр і токен:

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

Рэалізуем API з праверкай токена:

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

Зрабіце API, якое параметрам будзе прымаць дату дня нараджэння і вяртаць колькі дзён засталося да гэтай даты. Зрабіце аўтарызацыю па токене.

Задание 2

Мадыфікуйце папярэднюю задачу так, каб і параметр, і токен перадаваліся метадам POST.

Задание 3

Мадыфікуйце папярэднюю задачу так, каб токен перадаваўся праз HTTP загаловак X-Token.

Задание 4

Зрабіце так, каб токены захоўваліся ў базе даных і у кожнага карыстальніка API быў свой токен.

Задание 5

Абмежавайце кожнаму карыстальніку API колькасць запытаў да 10 у дзень.