79 lines
2.9 KiB
PHP
79 lines
2.9 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Script untuk verifikasi CORS configuration
|
||
|
|
* Usage: php bin/check_cors.php
|
||
|
|
*/
|
||
|
|
|
||
|
|
require __DIR__ . '/../vendor/autoload.php';
|
||
|
|
|
||
|
|
use App\Config\AppConfig;
|
||
|
|
|
||
|
|
// Load environment
|
||
|
|
AppConfig::loadEnv(__DIR__ . '/..');
|
||
|
|
|
||
|
|
echo "=== CORS Configuration Check ===\n\n";
|
||
|
|
|
||
|
|
// Check CORS configuration
|
||
|
|
$allowedOrigins = AppConfig::get('CORS_ALLOWED_ORIGINS', '*');
|
||
|
|
$allowedMethods = AppConfig::get('CORS_ALLOWED_METHODS', 'GET,POST,PUT,DELETE,OPTIONS');
|
||
|
|
$allowedHeaders = AppConfig::get('CORS_ALLOWED_HEADERS', 'Content-Type,Authorization,X-API-KEY,Accept,Origin');
|
||
|
|
$allowCredentials = AppConfig::get('CORS_ALLOW_CREDENTIALS', 'true');
|
||
|
|
|
||
|
|
echo "1. CORS Configuration:\n";
|
||
|
|
echo " CORS_ALLOWED_ORIGINS: " . ($allowedOrigins ?: '(not set, using default: *)') . "\n";
|
||
|
|
echo " CORS_ALLOWED_METHODS: " . ($allowedMethods ?: '(not set, using default)') . "\n";
|
||
|
|
echo " CORS_ALLOWED_HEADERS: " . ($allowedHeaders ?: '(not set, using default)') . "\n";
|
||
|
|
echo " CORS_ALLOW_CREDENTIALS: " . ($allowCredentials ?: '(not set, using default: true)') . "\n\n";
|
||
|
|
|
||
|
|
// Check if CorsMiddleware exists
|
||
|
|
echo "2. Checking CorsMiddleware class:\n";
|
||
|
|
if (class_exists('App\Middleware\CorsMiddleware')) {
|
||
|
|
echo " ✅ CorsMiddleware class found\n";
|
||
|
|
} else {
|
||
|
|
echo " ❌ CorsMiddleware class NOT found\n";
|
||
|
|
echo " Solution: Run 'composer dump-autoload --optimize'\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
// Check if CorsMiddleware is registered in Bootstrap
|
||
|
|
echo "\n3. Checking Bootstrap configuration:\n";
|
||
|
|
$bootstrapFile = __DIR__ . '/../src/Bootstrap/app.php';
|
||
|
|
if (file_exists($bootstrapFile)) {
|
||
|
|
$bootstrapContent = file_get_contents($bootstrapFile);
|
||
|
|
if (strpos($bootstrapContent, 'CorsMiddleware') !== false) {
|
||
|
|
echo " ✅ CorsMiddleware found in Bootstrap\n";
|
||
|
|
} else {
|
||
|
|
echo " ❌ CorsMiddleware NOT found in Bootstrap\n";
|
||
|
|
echo " Solution: Update src/Bootstrap/app.php\n";
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
echo " ❌ Bootstrap file not found\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
// Check .env file
|
||
|
|
echo "\n4. Checking .env file:\n";
|
||
|
|
$envFile = __DIR__ . '/../.env';
|
||
|
|
if (file_exists($envFile)) {
|
||
|
|
echo " ✅ .env file exists\n";
|
||
|
|
$envContent = file_get_contents($envFile);
|
||
|
|
if (strpos($envContent, 'CORS_ALLOWED_ORIGINS') !== false) {
|
||
|
|
echo " ✅ CORS_ALLOWED_ORIGINS found in .env\n";
|
||
|
|
} else {
|
||
|
|
echo " ⚠️ CORS_ALLOWED_ORIGINS not found in .env (will use default: *)\n";
|
||
|
|
echo " Recommendation: Add CORS configuration to .env\n";
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
echo " ⚠️ .env file not found\n";
|
||
|
|
echo " Recommendation: Copy .env.example to .env and configure\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
echo "\n=== Check Complete ===\n";
|
||
|
|
echo "\nNext steps:\n";
|
||
|
|
echo "1. If CorsMiddleware not found: composer dump-autoload --optimize\n";
|
||
|
|
echo "2. If .env not configured: Add CORS settings to .env\n";
|
||
|
|
echo "3. Restart PHP-FPM: systemctl reload php-fpm-83\n";
|
||
|
|
echo "4. Test: curl -I -H \"Origin: http://localhost\" https://api.btekno.cloud/health\n";
|
||
|
|
|