API me Autorizim në PHP

Mund të bëhet që API të jetë jo publik, por i mbyllur, i disponueshëm vetëm me fjalëkalim. Në këtë rast, kur i drejtohemi API-së sonë në çdo kërkesë, përveç parametrave, do të duhet të transmetohet fjalëkalimi i saktë. Ky fjalëkalim quhet token.

Përdoruesit e API-së sonë do të duhet të marrin këtë token në një farë mënyre. Për shembull, duke e blerë atë. Në këtë rast çdo blerësi do të ketë token-in e tij.

Le të shohim punën me tokena në një shembull. Le të supozojmë se API-ja jonë me parametër do të pranojë një numër, dhe do të kthejë katrorin e atij numri. Le ta bëjmë këtë API të mbyllur. Le të fillojmë zbatimin.

Për të filluar, për thjeshtësi, le të bëjmë një token të përbashkët dhe le ta ruajmë atë në formë të hapur në një skedar:

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

Kështu do t'i drejtohemi API-së sonë, duke kaluar parametrin dhe token-in:

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

Le të implementojmë API me kontroll të token-it:

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

Bëni një API, i cili me parametër do të pranojë datëlindjen dhe do të kthejë sa ditë kanë mbetur deri në këtë datë. Bëni autorizimin përmes token-it.

Задание 2

Modifikoni detyrën e mëparshme në mënyrë të tillë, që të dy parametri dhe token-i të transmetohen me metodën POST.

Задание 3

Modifikoni detyrën e mëparshme në mënyrë të tillë, që token-i të transmetohet përmes header-it HTTP X-Token.

Задание 4

Bëni që token-at të ruhen në bazën e të dhënave dhe çdo përdorues i API-të të ketë token-in e tij.

Задание 5

Kufizoni çdo përdoruesi të API-së numrin e kërkesave në 10 në ditë.