API hitelesítéssel PHP-ben
Lehetőség van arra, hogy az API ne nyilvános, hanem zárt legyen, csak jelszóval hozzáférhető. Ebben az esetben, amikor az API-nkhoz fordulunk, minden kérésben a paraméterek mellett a helyes jelszót is át kell adnunk. Ezt a jelszót tokennak hívják.
API-nk felhasználóinak valahogy meg kell szerezniük ezt a tokent. Például megvásárolhatják. Ebben az esetben minden vásárlónak saját tokenje lesz.
Nézzük meg a tokenek használatát egy példán keresztül. Tegyük fel, hogy API-nk paraméterként egy számot fogad el, és visszaadja ennek a számnak a négyzetét. Tegyük ezt az API-t zártá. Kezdjük el a megvalósítást.
Kezdetben az egyszerűség kedvéért készítsünk egy közös tokent, és tároljuk nyílt formában egy fájlban:
<?php
$token = '12345';
?>
Így fognak hozzáférni az API-nkhoz, átadva a paramétert és a tokent:
http://api.loc/index.php?num=100&token=12345
Valósítsuk meg az API-t token ellenőrzéssel:
<?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';
}
?>
Készítsen egy API-t, amely paraméterként egy születésnap dátumát fogadja, és visszaadja, hány nap van hátra eddig a dátumig. Valósítson meg tokenes hitelesítést.
Módosítsa az előző feladatot úgy, hogy mind a paraméter, mind a token POST metódussal legyen átadva.
Módosítsa az előző feladatot úgy,
hogy a token egy X-Token HTTP
fejlécen keresztül legyen átadva.
Állítsa be úgy, hogy a tokenek adatbázisban legyenek tárolva, és minden API felhasználónak saját tokenje legyen.
Korlátozza minden API felhasználó
lekérdezéseinek számát 10
re naponta.