PHP'de Token ile Yetkilendirmeli API
API'nin herkese açık olması yerine, sadece şifre ile erişilebilir, özel olmasını sağlayabiliriz. Bu durumda, API'mize her istekte parametrelerin yanı sıra doğru şifreyi de iletmemiz gerekecek. Bu tür bir şifreye token (anahtar) denir.
API'mizin kullanıcılarının bu token'ı bir şekilde elde etmeleri gerekecek. Örneğin, satın alarak. Bu durumda satın alan herkesin kendi token'ı olacak.
Token'ların çalışmasını bir örnekle görelim. API'mizin bir parametre olarak bir sayı aldığını ve bu sayının karesini döndürdüğünü varsayalım. Bu API'yi özel yapalım. Haydi uygulamaya başlayalım.
Başlangıç olarak basitlik için, genel bir token yapalım ve onu açık bir şekilde bir dosyada saklayalım:
<?php
$token = '12345';
?>
API'mize parametre ve token'ı şu şekilde ileterek erişeceğiz:
http://api.loc/index.php?num=100&token=12345
Token kontrolü ile API'yi uygulayalım:
<?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';
}
?>
Parametre olarak doğum günü tarihini alan ve bu tarihe kaç gün kaldığını döndüren bir API yapın. Token ile yetkilendirme yapın.
Önceki görevi, hem parametrenin hem de token'ın POST metodu ile iletilmesi şeklinde değiştirin.
Önceki görevi, token'ın X-Token
HTTP başlığı ile iletilmesi şeklinde
değiştirin.
Token'ların veritabanında saklanmasını ve her API kullanıcısının kendi token'ının olmasını sağlayın.
Her API kullanıcısının günlük istek
sayısını 10 ile sınırlandırın.