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 ครั้ง ต่อวัน