PHP-da tokenlar orqali avtorizatsiyali API
API-ni ochiq emas, balki yopiq, faqat parol orqali kirish mumkin bo‘lgan qilish mumkin. Bunday holatda, bizning API-mizga murojaat qilganda har bir so‘rovda parametrlar bilan birga to‘g‘ri parolni ham uzatishimiz kerak bo‘ladi. Bunday parol token deb ataladi.
Bizning API-dan foydalanuvchilar ushbu tokenni qandaydir tarzda olishlari kerak. Masalan, uni sotib olishlari mumkin. Bunday holda har bir sotib olganning o‘z tokensi bo‘ladi.
Keling, tokenlar bilan ishlashni misolda ko‘rib chiqaylik. Faraz qilaylik, bizning API parametr sifatida sonni qabul qilsin va shu sonning kvadratini qaytarsin. Keling, ushbu API-ni yopiq qilaylik. Amalga oshirishni boshlaymiz.
Boshlash uchun, soddalik uchun bitta umumiy token yaratamiz va uni ochiq shaklda faylda saqlaymiz:
<?php
$token = '12345';
?>
Biz API-ga parametr va tokenni uzatib, shunday murojaat qilamiz:
http://api.loc/index.php?num=100&token=12345
Keling, token tekshiruvi bilan API-ni amalga oshiramiz:
<?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';
}
?>
Tug‘ilgan kun sanasini parametr sifatida qabul qiladigan va shu sanagacha qancha kun qolganini qaytaradigan API yarating. Token orqali avtorizatsiyani amalga oshiring.
Oldingi vazifani o‘zgartiring, shunday qilinki, ham parametr, ham token POST metodi orqali uzatilsin.
Oldingi vazifani o‘zgartiring, shunday qilinki, token HTTP sarlavhasi X-Token orqali uzatilsin.
Ma'lumotlar bazasida tokenlar saqlanadigan va API-dan har bir foydalanuvchining o‘z tokensi bo‘ladigan qiling.
Har bir API foydalanuvchisi uchun so‘rovlar sonini kundagi 10 taga cheklang.