PHP-তে টোকেনের মাধ্যমে অথোরাইজেশন সহ API

এটি এমনভাবে তৈরি করা সম্ভব যাতে 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-এ সীমিত করুন।