PHP-də Avtorizasiya ilə API
API-ni ictimai deyil, qapalı etmək olar, yəni yalnız şifrə ilə əlçatan. Bu halda, bizim API-mizə müraciət edərkən hər sorğuda parametrlərdən əlavə düzgün şifrə ötürülməlidir. Belə bir şifrəyə token deyilir.
Bizim API-mizin istifadəçiləri bu tokeni bir şəkildə əldə etməlidirlər. Məsələn, onu satın alaraq. Bu halda hər alanın öz tokeni olacaq.
Gəlin tokenlərlə işi bir nümunə üzərində nəzərdən keçirək. Fərz edək ki, bizim API-miz parametr kimi bir rəqəm qəbul edir və həmin rəqəmin kvadratını qaytarır. Gəlin bu API-ni qapalı edək. Realizasiyaya başlayaq.
Başlanğıc üçün, sadəlik üçün bir ümumi token edək və onu açıq şəkildə faylda saxlayaq:
<?php
$token = '12345';
?>
Biz API-mizə parametr və tokeni ötürərək belə müraciət edəcəyik:
http://api.loc/index.php?num=100&token=12345
Gəlin token yoxlaması ilə API-ni realizə edək:
<?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';
}
?>
Bir API edin ki, parametr kimi doğum tarixini qəbul etsin və bu tarixə qədər neçə gün qaldığını qaytarsın. Token ilə avtorizasiya edin.
Əvvəlki məsələni elə dəyişin ki, həm parametr, həm də token POST metodu ilə ötürülsün.
Əvvəlki məsələni elə dəyişin ki,
token HTTP başlığı X-Token
vasitəsilə ötürülsün.
Elə edin ki, tokenlər verilənlər bazasında saxlanılsın və hər bir API istifadəçisinin öz tokeni olsun.
Hər bir API istifadəçisi üçün sorğu
sayını gündə 10-a məhdudlaşdırın.