Obtener un token
Envía tus credenciales al endpoint de login:
curl -X POST https://auth.mipos.co.cr/login \
-H "Content-Type: application/json" \
-d '{"base":"mi_empresa","password":"mi_password"}'
Usar el token
Incluye el token en el header Authorization de cada request a las APIs cliente:
Authorization: Bearer eyJhbGciOiJSUzI1NiIs...
El token expira después de 8 horas (28800 segundos). Cuando expire, debes hacer login nuevamente. No hay endpoint de refresh.
Verificar el token (APIs cliente)
Las APIs que reciben el token deben verificar su firma. Hay dos formas:
Con public.pem (local)
Con JWKS (remoto)
Copia el archivo public.pem del Auth Server a tu API cliente y verifica localmente:use Firebase\JWT\JWT;
use Firebase\JWT\Key;
$publicKey = file_get_contents('/ruta/segura/public.pem');
$token = str_replace('Bearer ', '', $_SERVER['HTTP_AUTHORIZATION'] ?? '');
try {
$decoded = JWT::decode($token, new Key($publicKey, 'RS256'));
$base = $decoded->base; // Identificador del cliente
} catch (\Exception $e) {
http_response_code(401);
exit(json_encode(['error' => 'Token inválido']));
}
Consulta el endpoint JWKS para obtener la clave pública dinámicamente. Útil cuando se rotan claves.GET https://auth.mipos.co.cr/.well-known/jwks.json
La respuesta contiene la clave pública con su kid. Las librerías JWT pueden consumir el JWKS directamente para resolver la clave correcta.