Lumen CORS
Cross-Origin Resource Sharing (CORS) module for the Lumen PHP framework.
Requirements
Usage
Installation
Run the following command to install the package through Composer:
composer require nordsoftware/lumen-corsConfigure
Copy the configuration template in config/cors.php to your application's config directory and modify according to your needs.
For more information see the Configuration Files section in the Lumen documentation.
Available configuration options:
-
allow_origins
arrayOrigins that are allowed to perform requests, defaults to an empty array. Patterns also accepted, for example *.foo.com -
allow_methods
arrayHTTP methods that are allowed, defaults to an empty array -
allow_headers
arrayHTTP headers that are allowed, defaults to an empty array -
allow_credentials
booleanWhether or not the response can be exposed when credentials are present, defaults to false -
expose_headers
arrayHTTP headers that are allowed to be exposed to the web browser, defaults to an empty array -
max_age
integerIndicates how long preflight request can be cached, defaults to 0
Bootstrapping
Add the following lines to bootstrap/app.php:
$app->register('Nord\Lumen\Cors\CorsServiceProvider');$app->middleware([
.....
'Nord\Lumen\Cors\CorsMiddleware',
]);The module now automatically handles all CORS requests.
Customizing behavior
While the service can be configured somewhat using config/cors.php, some more exotic things such as regular
expressions for allowed origins cannot. If you need to, you can provide this custom functionality yourself:
- Extend
CorsServiceand override e.g.isOriginAllowed() - Extend
CorsServiceProviderand overrideregisterBindings(), then register your own service class instead
Contributing
Please read the guidelines.
Running tests
Clone the project and install its dependencies by running:
composer installRun the following command to run the test suite:
composer testLicense
See LICENSE.