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 дар як рӯз маҳдуд кунед.