API con autorización en PHP
Se puede hacer que la API sea no pública, sino privada, accesible solo con contraseña. En este caso, al acceder a nuestra API en cada solicitud, además de los parámetros, será necesario transmitir la contraseña correcta. Dicha contraseña se denomina token.
Los usuarios de nuestra API deberán obtener este token de alguna manera. Por ejemplo, comprándolo. En este caso cada comprador tendrá su propio token.
Veamos el trabajo con tokens con un ejemplo. Supongamos que nuestra API recibe un número como parámetro y devuelve el cuadrado de ese número. Hagamos que esta API sea privada. Procedamos con la implementación.
Para empezar, por simplicidad, haremos un token general y lo almacenaremos en texto plano en un archivo:
<?php
$token = '12345';
?>
Así es como accederemos a nuestra API, pasando el parámetro y el token:
http://api.loc/index.php?num=100&token=12345
Implementemos la API con verificación de token:
<?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';
}
?>
Cree una API que reciba como parámetro la fecha de cumpleaños y devuelva cuántos días faltan para esa fecha. Implemente la autorización por token.
Modifique la tarea anterior para que tanto el parámetro como el token se transmitan por el método POST.
Modifique la tarea anterior para
que el token se transmita a través del
encabezado HTTP X-Token.
Haga que los tokens se almacenen en una base de datos y que cada usuario de la API tenga su propio token.
Limite para cada usuario de la API
el número de solicitudes a 10
por día.