API com autorização em PHP

É possível fazer com que a API não seja pública, mas sim privada, acessível apenas com uma senha. Neste caso, ao acessar nossa API, em cada solicitação, além dos parâmetros, será necessário enviar a senha correta. Essa senha é chamada de token.

Os usuários da nossa API deverão obter esse token de alguma forma. Por exemplo, comprando-o. Neste caso, cada comprador terá seu próprio token.

Vamos ver o funcionamento com tokens com um exemplo. Suponha que nossa API receba um número como parâmetro e retorne o quadrado desse número. Vamos tornar essa API privada. Vamos começar a implementação.

Para começar, por simplicidade, vamos criar um token geral e armazená-lo de forma aberta em um arquivo:

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

É assim que vamos acessar nossa API, enviando o parâmetro e o token:

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

Vamos implementar a API com verificação 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

Crie uma API que receba como parâmetro a data de aniversário e retorne quantos dias faltam para essa data. Implemente a autorização por token.

Задание 2

Modifique a tarefa anterior para que tanto o parâmetro quanto o token sejam enviados via método POST.

Задание 3

Modifique a tarefa anterior para que o token seja enviado através do cabeçalho HTTP X-Token.

Задание 4

Faça com que os tokens sejam armazenados em um banco de dados e que cada usuário da API tenha seu próprio token.

Задание 5

Restrinja para cada usuário da API o número de solicitações para 10 por dia.