www/get_matrix_token.php
2026-06-27 21:44:44 +00:00

34 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
header("Content-Type: application/json; charset=utf-8");
ini_set('display_errors', '1');
error_reporting(E_ALL);
try {
$cfg = @include __DIR__ . "/config_db.php";
if (!is_array($cfg)) {
throw new RuntimeException("Config DB inválida ou em falta (config_db.php).");
}
$dsn = sprintf("mysql:host=%s;dbname=%s;charset=utf8mb4", $cfg['db_host'], $cfg['db_name']);
$pdo = new PDO($dsn, $cfg['db_user'], $cfg['db_pass'], [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]);
$stmt = $pdo->prepare("SELECT token_plain FROM api_tokens WHERE label = ? AND revoked = 0 ORDER BY id DESC LIMIT 1");
$stmt->execute(['matrix-admin']);
$row = $stmt->fetch();
if (!$row || empty($row['token_plain'])) {
http_response_code(404);
echo json_encode(["error" => "Token não encontrado"]);
exit;
}
echo json_encode(["token" => $row["token_plain"]]);
} catch (Throwable $e) {
http_response_code(500);
echo json_encode(["error" => $e->getMessage()]);
}