diff --git a/.gitignore b/.gitignore index 8093fa3..a86cfba 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ web/BUILD # Local config overrides (never commit secrets) config/config.local.php +config.local.php .env .env.local diff --git a/lib/bootstrap.php b/lib/bootstrap.php index 3476c42..dc39a35 100644 --- a/lib/bootstrap.php +++ b/lib/bootstrap.php @@ -3,6 +3,10 @@ if (!defined('ROOT')) define('ROOT', dirname(__DIR__)); $config = require ROOT . '/config/config.php'; +if (file_exists(ROOT . '/config.local.php')) { + require_once ROOT . '/config.local.php'; +} + ini_set('session.cookie_httponly', '1'); ini_set('session.use_strict_mode', '1'); session_name($config['session_name']); diff --git a/web/api/linkedin_auth.php b/web/api/linkedin_auth.php index ed33281..c5ddef4 100644 --- a/web/api/linkedin_auth.php +++ b/web/api/linkedin_auth.php @@ -8,7 +8,7 @@ $stmt = $db->prepare('SELECT * FROM projects WHERE id = ? AND is_active = 1'); $stmt->execute([$pid]); if (!$stmt->fetch()) { http_response_code(404); echo json_encode(['error' => 'Project not found']); exit; } -$client_id = getenv('LINKEDIN_CLIENT_ID') ?: ($_SERVER['LINKEDIN_CLIENT_ID'] ?? null); +$client_id = defined('LINKEDIN_CLIENT_ID') ? LINKEDIN_CLIENT_ID : (getenv('LINKEDIN_CLIENT_ID') ?: ($_SERVER['LINKEDIN_CLIENT_ID'] ?? null)); if (!$client_id) { echo json_encode(['error' => 'LINKEDIN_CLIENT_ID not set in server environment']); exit; } $state = bin2hex(random_bytes(16)); diff --git a/web/linkedin_callback.php b/web/linkedin_callback.php index 3590863..732d704 100644 --- a/web/linkedin_callback.php +++ b/web/linkedin_callback.php @@ -20,8 +20,8 @@ if (isset($_GET['error'])) { $code = $_GET['code'] ?? ''; if (!$code) { echo 'Missing code. Go back'; exit; } -$client_id = getenv('LINKEDIN_CLIENT_ID') ?: ($_SERVER['LINKEDIN_CLIENT_ID'] ?? null); -$client_secret = getenv('LINKEDIN_CLIENT_SECRET') ?: ($_SERVER['LINKEDIN_CLIENT_SECRET'] ?? null); +$client_id = defined('LINKEDIN_CLIENT_ID') ? LINKEDIN_CLIENT_ID : (getenv('LINKEDIN_CLIENT_ID') ?: ($_SERVER['LINKEDIN_CLIENT_ID'] ?? null)); +$client_secret = defined('LINKEDIN_CLIENT_SECRET') ? LINKEDIN_CLIENT_SECRET : (getenv('LINKEDIN_CLIENT_SECRET') ?: ($_SERVER['LINKEDIN_CLIENT_SECRET'] ?? null)); $redirect_uri = (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/linkedin/callback'; // Exchange code for tokens