Files
flash-call-otp/backend/config.php
2026-05-23 17:40:46 +03:00

64 lines
2.5 KiB
PHP

<?php
/**
* Flash Call OTP System — Configuration
* Domain: otp.intaleqapp.com
*/
// Load Dotenv if composer dependencies are installed
if (file_exists(__DIR__ . '/vendor/autoload.php')) {
require_once __DIR__ . '/vendor/autoload.php';
// Check inside current dir, parent dir, grandparent dir, or user root dir
$envPaths = [__DIR__, dirname(__DIR__), dirname(dirname(__DIR__)), dirname(dirname(dirname(__DIR__)))];
foreach ($envPaths as $path) {
if (file_exists($path . '/.env')) {
$dotenv = Dotenv\Dotenv::createImmutable($path);
$dotenv->safeLoad();
break;
}
}
}
// Database
define('DB_HOST', $_ENV['DB_HOST'] ?? $_SERVER['DB_HOST'] ?? getenv('DB_HOST'));
define('DB_NAME', $_ENV['DB_NAME'] ?? $_SERVER['DB_NAME'] ?? getenv('DB_NAME'));
define('DB_USER', $_ENV['DB_USER'] ?? $_SERVER['DB_USER'] ?? getenv('DB_USER'));
define('DB_PASS', $_ENV['DB_PASS'] ?? $_SERVER['DB_PASS'] ?? getenv('DB_PASS'));
// Redis
define('REDIS_HOST', $_ENV['REDIS_HOST'] ?? $_SERVER['REDIS_HOST'] ?? getenv('REDIS_HOST'));
define('REDIS_PORT', $_ENV['REDIS_PORT'] ?? $_SERVER['REDIS_PORT'] ?? getenv('REDIS_PORT'));
define('REDIS_PASSWORD', $_ENV['REDIS_PASSWORD'] ?? $_SERVER['REDIS_PASSWORD'] ?? getenv('REDIS_PASSWORD') ?: null);
define('REDIS_DB', $_ENV['REDIS_DB'] ?? $_SERVER['REDIS_DB'] ?? getenv('REDIS_DB'));
// Application Keys
define('APP_KEY', $_ENV['APP_KEY'] ?? $_SERVER['APP_KEY'] ?? getenv('APP_KEY'));
define('DEVICE_KEY', $_ENV['DEVICE_KEY'] ?? $_SERVER['DEVICE_KEY'] ?? getenv('DEVICE_KEY'));
// SMS Sender ID (for iOS SMS delivery)
define('SMS_SENDER_ID', 'انطلق');
// OTP Settings
define('OTP_EXPIRE_SECONDS', 120);
define('MAX_OTP_ATTEMPTS', 5);
// Rate Limiting
define('RATE_LIMIT_WINDOW', 600); // 10 minutes in seconds
define('RATE_LIMIT_MAX', 3); // Max OTP requests per phone per window
// Caller ID Configuration
// Format: +96279XX{OTP} — XX = random 2 digits
define('CALLER_ID_PREFIX', '+9639');
// Logging
define('LOG_REQUESTS', true);
define('LOG_FILE', __DIR__ . '/logs/api.log');
// WhatsApp Gateway Configuration
define('WHATSAPP_GATEWAY_URL', $_ENV['WHATSAPP_GATEWAY_URL'] ?? $_SERVER['WHATSAPP_GATEWAY_URL'] ?? getenv('WHATSAPP_GATEWAY_URL'));
define('WHATSAPP_WEBHOOK_SECRET', $_ENV['WHATSAPP_WEBHOOK_SECRET'] ?? $_SERVER['WHATSAPP_WEBHOOK_SECRET'] ?? getenv('WHATSAPP_WEBHOOK_SECRET'));
define('WHATSAPP_SESSION_KEY', $_ENV['WHATSAPP_SESSION_KEY'] ?? $_SERVER['WHATSAPP_SESSION_KEY'] ?? getenv('WHATSAPP_SESSION_KEY'));
// Timezone
date_default_timezone_set('Asia/Amman');