snelg / cakephp-cors

CORS plugin for CakePHP 3
19 stars 2 forks source link

CORS plugin for CakePHP 3.0-3.2

Build Status Coverage Downloads

A simple plugin to add CORS headers to specified requests.

For CakePHP 3.3+, use https://github.com/ozee31/cakephp-cors

Requirements

Installation

You can install this plugin into your CakePHP application using composer.

To install this plugin, in your terminal type:

composer require snelg/cakephp-cors:dev-master

Unlocking CORS for a single controller

Define a single key within the routes array in the DispatcherFactory options array:

DispatcherFactory::add('Cors.Cors', ['routes' => [
    'ControllerClassName'
]]);

Unlocking CORS for a controller scoped to a single action

Define a nested array consisting of 'controller' => 'action' within the routes array in DispatcherFactor options:

DispatcherFactory::add('Cors.Cors', ['routes' => [
    'ControllerClassName' => 'some_action',
]]);

Scoping CORS to particular origins

DispatcherFactory::add('Cors.Cors', ['routes' => [
    'ControllerClassName' => [
        'action_one' => ['origin' => 'somesite.com']
]]);

Scoping CORS to particular methods

DispatcherFactory::add('Cors.Cors', ['routes' => [
   'ControllerClassName' => [
       'action_one' => [
           'origin' => 'somesite.com',
           'methods' => ['PUT', 'DELETE']
       ]
]]);

Setting CORS within Router::connect

Router::scope('/', function ($routes) {
    $routes->connect('/public_api',
    ['controller' => 'ControllerClass', 'action' => 'action_one', 'cors' => true]]
});
}

Router::connect with custom origins, methods, and headers

Router::scope('/', function ($routes) {
    $routes->connect('/public_api', [
        'controller' => 'ControllerClass',
        'action' => 'action_one',
        'cors' => [
            'origin' => 'your_origin.com',
            'methods' => ['PUT', 'DELETE'],
            'headers' => []
        ]
    ]);
});
}

Support

For bugs and feature requests, please use the issues section of this repository.

Contributing

To contribute to this plugin please follow a few basic rules.

Creators

Glen Sawyer && Wes King

License

Copyright 2015, Glen Sawyer and Wes King

Licensed under The MIT License Redistributions of files must retain the above copyright notice.