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;