CORS Configuration
Learn how to configure Cross-Origin Resource Sharing (CORS) in Sockeon.
Overview
CORS is handled automatically by the framework based on the configuration in ServerConfig. No middleware or manual handling is required.
Basic Configuration
use Sockeon\Sockeon\Config\ServerConfig;
use Sockeon\Sockeon\Connection\Server;
// Create server configuration with CORS
$config = new ServerConfig();
$config->cors = [
'allowed_origins' => ['https://example.com', 'https://app.example.com'],
'allowed_methods' => ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
'allowed_headers' => ['Content-Type', 'Authorization', 'X-Requested-With'],
'exposed_headers' => ['X-Total-Count', 'X-Page-Count'],
'allow_credentials' => true,
'max_age' => 86400 // 24 hours
];
// Create server with CORS configuration
$server = new Server($config);
$server->run();
Configuration Options
Allowed Origins
// Allow all origins (not recommended for production)
$config->cors = [
'allowed_origins' => ['*']
];
// Allow specific origins
$config->cors = [
'allowed_origins' => [
'https://example.com',
'https://app.example.com'
]
];
HTTP Methods
$config->cors = [
'allowed_methods' => ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS']
];
Headers
$config->cors = [
'allowed_headers' => [
'Content-Type',
'Authorization',
'X-Requested-With'
],
'exposed_headers' => [
'X-Total-Count',
'X-Page-Count'
]
];
Credentials and Caching
$config->cors = [
'allow_credentials' => true,
'max_age' => 86400 // 24 hours
];