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!
|
SMTP_PASS=N036p7y!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
API_URL=http://50.21.176.205:3000
|
API_URL=http://50.21.176.205:3000
|
||||||
API_USER=adminAS
|
API_USER=adminAS
|
||||||
API_PASS=zC?K.Z5o2tiLN4gE
|
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 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
|
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'];
|
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';
|
$url = rtrim($_ENV['API_URL'] ?? '', '/') . '/auth/login';
|
||||||
$user = $_ENV['API_USER'] ?? '';
|
$user = $_ENV['API_USER'] ?? '';
|
||||||
$pass = $_ENV['API_PASS'] ?? '';
|
$pass = $_ENV['API_PASS'] ?? '';
|
||||||
$body = json_encode(['username' => $user, 'password' => $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);
|
$ch = curl_init($url);
|
||||||
curl_setopt_array($ch, [
|
curl_setopt_array($ch, [
|
||||||
@@ -38,16 +52,21 @@ function getApiToken(): ?string
|
|||||||
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
curl_close($ch);
|
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'])) {
|
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'] = $data['token'];
|
||||||
|
$_SESSION['api_token_time'] = time();
|
||||||
return $data['token'];
|
return $data['token'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 4) Si no se pudo obtener, devolvemos null
|
||||||
|
error_log('[getApiToken] No se pudo obtener token de la API');
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GET /IMPORTADORES/proveedores
|
* GET /IMPORTADORES/proveedores
|
||||||
* Muestra la vista de listado
|
* Muestra la vista de listado
|
||||||
@@ -150,7 +169,7 @@ function eliminar()
|
|||||||
$ch = curl_init($url);
|
$ch = curl_init($url);
|
||||||
curl_setopt_array($ch, [
|
curl_setopt_array($ch, [
|
||||||
CURLOPT_CUSTOMREQUEST => 'DELETE',
|
CURLOPT_CUSTOMREQUEST => 'DELETE',
|
||||||
CURLOPT_HTTPHEADER => ["Authorization: Bearer $token",'Accept: application/json'],
|
CURLOPT_HTTPHEADER => ["Authorization: $token",'Accept: application/json'],
|
||||||
CURLOPT_RETURNTRANSFER => true,
|
CURLOPT_RETURNTRANSFER => true,
|
||||||
CURLOPT_TIMEOUT => 5,
|
CURLOPT_TIMEOUT => 5,
|
||||||
]);
|
]);
|
||||||
|
|||||||
Reference in New Issue
Block a user