A API usa JWT (JSON Web Tokens) para autenticação dos pedidos. A autenticação pode ser feita de duas formas:
- Token Fixo (útil para testes e integrações simples).
- Token JWT dinâmico, gerado a partir de um utilizador registado e ativo.
Endpoints de Autenticação
Gerar Token
GET /api/generate-token/username/{USERNAME}/password/{PASSWORD}
Resposta:
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOi…"
}
Validar Token
GET /api/validate-token/{TOKEN}
Validação de Token nos Endpoints
Authorization: Bearer {TOKEN}
Este token é validado pela função isTokenAuthorized()
, que verifica:
- Se o token é o token fixo (hardcoded), ou
- Se é um token JWT válido e não expirado, e
- Se o utilizador (email e password dentro do payload) existe e está ativo.
Exemplo de consumo em PHP
<?php $apiBase = 'https://[O.MEU.DNS]/api'; // Obter o token $username = 'username@mail.pt'; $password = 'password'; $tokenUrl = "$apiBase/generate-token/username/$username/password/$password"; $response = file_get_contents($tokenUrl); $data = json_decode($response, true); if (!isset($data['token'])) { die("Erro ao gerar token!"); } $token = $data['token']; // Chamada autenticada a um endpoint $endpoint = "$apiBase/get/products"; $opts = [ "http" => [ "method" => "GET", "header" => "Authorization: Bearer $token" ] ]; $context = stream_context_create($opts); $result = file_get_contents($endpoint, false, $context); echo $result;