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

გააკეთეთ ისე, რომ ტოკენები ინახებოდეს მონაცემთა ბაზაში და ყოველ მომხმარებელს ჰქონდეს საკუთარი ტოკენი.

Задание 5

შეზღუდეთ ყოველი მომხმარებლისთვის API-ზე მოთხოვნების რაოდენობა 10-მდე დღეში.