Merge branch 'main' of https://github.com/AduanaSoft/IMPORTADORES
This commit is contained in:
1
.env
1
.env
@@ -12,6 +12,7 @@ RECAPTCHA_SECRET=6LfkMB8rAAAAAFWMAZmIqtN0ocDzg9t1g0_xbkkN
|
||||
SMTP_PASS=N036p7y!
|
||||
|
||||
|
||||
|
||||
API_URL=http://50.21.176.205:3000
|
||||
API_USER=adminAS
|
||||
API_PASS=zC?K.Z5o2tiLN4gE
|
||||
|
||||
@@ -13,18 +13,32 @@ loadEnv();
|
||||
/**
|
||||
* Obtiene (y cachea en sesión) el JWT de la API usando las credenciales de $_ENV
|
||||
*/
|
||||
/**
|
||||
* Obtiene (y cachea) el JWT de la API usando credenciales de $_ENV
|
||||
* Gestiona expiración: asume 1 hora de vida y renueva si ha pasado.
|
||||
*/
|
||||
function getApiToken(): ?string
|
||||
{
|
||||
if (!empty($_SESSION['api_token'])) {
|
||||
// Duración en segundos del token (60 min)
|
||||
$ttl = 3600;
|
||||
|
||||
// 1) Si ya tenemos token y no ha expirado, lo devolvemos
|
||||
if (!empty($_SESSION['api_token']) && !empty($_SESSION['api_token_time'])) {
|
||||
$age = time() - $_SESSION['api_token_time'];
|
||||
if ($age < $ttl) {
|
||||
error_log("[getApiToken] Usando token en caché (edad: {$age}s)");
|
||||
return $_SESSION['api_token'];
|
||||
}
|
||||
error_log("[getApiToken] Token expirado (edad: {$age}s), obteniendo uno nuevo");
|
||||
}
|
||||
|
||||
// 2) Sí o sí hacemos login en la API
|
||||
$url = rtrim($_ENV['API_URL'] ?? '', '/') . '/auth/login';
|
||||
$user = $_ENV['API_USER'] ?? '';
|
||||
$pass = $_ENV['API_PASS'] ?? '';
|
||||
$body = json_encode(['username' => $user, 'password' => $pass]);
|
||||
|
||||
error_log("[getApiToken] POST $url → body: $body");
|
||||
error_log("[getApiToken] POST $url → $body");
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt_array($ch, [
|
||||
@@ -38,16 +52,21 @@ function getApiToken(): ?string
|
||||
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
error_log("[getApiToken] HTTP $http → resp: $resp");
|
||||
error_log("[getApiToken] HTTP $http → $resp");
|
||||
|
||||
if ($http === 200 && ($data = json_decode($resp, true)) && !empty($data['token'])) {
|
||||
// 3) Guardamos token y tiempo actual
|
||||
$_SESSION['api_token'] = $data['token'];
|
||||
$_SESSION['api_token_time'] = time();
|
||||
return $data['token'];
|
||||
}
|
||||
|
||||
// 4) Si no se pudo obtener, devolvemos null
|
||||
error_log('[getApiToken] No se pudo obtener token de la API');
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* GET /IMPORTADORES/proveedores
|
||||
* Muestra la vista de listado
|
||||
@@ -150,7 +169,7 @@ function eliminar()
|
||||
$ch = curl_init($url);
|
||||
curl_setopt_array($ch, [
|
||||
CURLOPT_CUSTOMREQUEST => 'DELETE',
|
||||
CURLOPT_HTTPHEADER => ["Authorization: Bearer $token",'Accept: application/json'],
|
||||
CURLOPT_HTTPHEADER => ["Authorization: $token",'Accept: application/json'],
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_TIMEOUT => 5,
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user