API dengan Otorisasi di PHP

API dapat dibuat tidak publik, tetapi pribadi, hanya dapat diakses dengan kata sandi. Dalam hal ini, ketika mengakses API kita, setiap permintaan selain parameter perlu menyertakan kata sandi yang benar. Kata sandi seperti ini disebut token.

Pengguna API kita harus mendapatkan token ini dengan cara tertentu. Misalnya, dengan membelinya. Dalam hal ini setiap pembeli akan memiliki token sendiri.

Mari kita lihat cara kerja dengan token melalui contoh. Misalkan API kita menerima angka sebagai parameter, dan mengembalikan kuadrat dari angka tersebut. Mari kita buat API ini menjadi pribadi. Mari kita mulai implementasinya.

Pertama, untuk mempermudah, kita buat satu token bersama dan simpan dalam bentuk terbuka di file:

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

Berikut cara kita mengakses API kita, menyertakan parameter dan token:

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

Mari implementasikan API dengan pemeriksaan token:

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

Buatlah API yang parameternya akan menerima tanggal ulang tahun dan mengembalikan berapa hari lagi menuju tanggal tersebut. Buatlah otorisasi berdasarkan token.

Задание 2

Modifikasi tugas sebelumnya sehingga baik parameter maupun token dikirimkan menggunakan metode POST.

Задание 3

Modifikasi tugas sebelumnya sehingga token dikirimkan melalui header HTTP X-Token.

Задание 4

Buatlah agar token disimpan dalam basis data dan setiap pengguna API memiliki token sendiri.

Задание 5

Batasi setiap pengguna API jumlah permintaannya hingga 10 per hari.