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:

api.loc/index.php<?php
  $token = '12345';
?>

Así es como accederemos a nuestra API, pasando el parámetro y el token:

urlhttp://api.loc/index.php?num=100&token=12345

Implementemos la API con verificación de token:

api.loc/index.php<?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';
  }
  
?>
Задание 1

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.

Задание 2

Modifique la tarea anterior para que tanto el parámetro como el token se transmitan por el método POST.

Задание 3

Modifique la tarea anterior para que el token se transmita a través del encabezado HTTP X-Token.

Задание 4

Haga que los tokens se almacenen en una base de datos y que cada usuario de la API tenga su propio token.

Задание 5

Limite para cada usuario de la API el número de solicitudes a 10 por día.