2017 © Pedro Peláez
 

library stack-cors

Cross-origin resource sharing library and stack middleware

image

asm89/stack-cors

Cross-origin resource sharing library and stack middleware

  • Wednesday, December 20, 2017
  • by asm89
  • Repository
  • 6 Watchers
  • 388 Stars
  • 4,479,471 Installations
  • PHP
  • 16 Dependents
  • 2 Suggesters
  • 28 Forks
  • 4 Open issues
  • 10 Versions
  • 15 % Grown

The README.md

Stack/Cors

Library and middleware enabling cross-origin resource sharing for your http-{foundation,kernel} using application. It attempts to implement the W3C Recommendation for cross-origin resource sharing., (*1)

Build status: .github/workflows/run-tests.yml, (*2)

Installation

Require asm89/stack-cors using composer., (*3)

Usage

This package can be used as a library or as stack middleware., (*4)

Options

Option Description Default value
allowedMethods Matches the request method. []
allowedOrigins Matches the request origin. []
allowedOriginsPatterns Matches the request origin with preg_match. []
allowedHeaders Sets the Access-Control-Allow-Headers response header. []
exposedHeaders Sets the Access-Control-Expose-Headers response header. false
maxAge Sets the Access-Control-Max-Age response header.br/Set to null to omit the header/use browser default. 0
supportsCredentials Sets the Access-Control-Allow-Credentials header. false

The allowedMethods and allowedHeaders options are case-insensitive., (*5)

You don't need to provide both allowedOrigins and allowedOriginsPatterns. If one of the strings passed matches, it is considered a valid origin., (*6)

If ['*'] is provided to allowedMethods, allowedOrigins or allowedHeaders all methods / origins / headers are allowed., (*7)

If supportsCredentials is true, you must explicitly set allowedHeaders for any headers which are not CORS safelisted., (*8)

Example: using the library

<?php

use Asm89\Stack\CorsService;

$cors = new CorsService([
    'allowedHeaders'         => ['x-allowed-header', 'x-other-allowed-header'],
    'allowedMethods'         => ['DELETE', 'GET', 'POST', 'PUT'],
    'allowedOrigins'         => ['http://localhost'],
    'allowedOriginsPatterns' => ['/localhost:\d/'],
    'exposedHeaders'         => false,
    'maxAge'                 => 600,
    'supportsCredentials'    => true,
]);

$cors->addActualRequestHeaders(Response $response, $origin);
$cors->handlePreflightRequest(Request $request);
$cors->isActualRequestAllowed(Request $request);
$cors->isCorsRequest(Request $request);
$cors->isPreflightRequest(Request $request);

Example: using the stack middleware

<?php

use Asm89\Stack\Cors;

$app = new Cors($app, [
    // you can use ['*'] to allow any headers
    'allowedHeaders'      => ['x-allowed-header', 'x-other-allowed-header'],
    // you can use ['*'] to allow any methods
    'allowedMethods'      => ['DELETE', 'GET', 'POST', 'PUT'],
    // you can use ['*'] to allow requests from any origin
    'allowedOrigins'      => ['localhost'],
    // you can enter regexes that are matched to the origin request header
    'allowedOriginsPatterns' => ['/localhost:\d/'],
    'exposedHeaders'      => false,
    'maxAge'              => 600,
    'supportsCredentials' => false,
]);

The Versions

20/12 2017

dev-master

9999999-dev https://github.com/asm89/stack-cors

Cross-origin resource sharing library and stack middleware

  Sources   Download

MIT

The Requires

 

The Development Requires

cors stack

20/12 2017

1.2.0

1.2.0.0 https://github.com/asm89/stack-cors

Cross-origin resource sharing library and stack middleware

  Sources   Download

MIT

The Requires

 

The Development Requires

cors stack

11/04 2017

dev-barryvdh-addpreflightheaders

dev-barryvdh-addpreflightheaders https://github.com/asm89/stack-cors

Cross-origin resource sharing library and stack middleware

  Sources   Download

MIT

The Requires

 

The Development Requires

cors stack

11/04 2017

dev-feat-originmatch

dev-feat-originmatch https://github.com/asm89/stack-cors

Cross-origin resource sharing library and stack middleware

  Sources   Download

MIT

The Requires

 

The Development Requires

cors stack

11/04 2017

1.1.0

1.1.0.0 https://github.com/asm89/stack-cors

Cross-origin resource sharing library and stack middleware

  Sources   Download

MIT

The Requires

 

The Development Requires

cors stack

01/08 2016

1.0.0

1.0.0.0 https://github.com/asm89/stack-cors

Cross-origin resource sharing library and stack middleware

  Sources   Download

MIT

The Requires

 

cors stack

28/07 2014

0.2.1

0.2.1.0 https://github.com/asm89/stack-cors

Cross-origin resource sharing library and stack middleware

  Sources   Download

MIT

The Requires

 

cors stack

08/04 2014

dev-develop

dev-develop https://github.com/asm89/stack-cors

Cross-origin resource sharing library and stack middleware

  Sources   Download

MIT

The Requires

 

cors stack

22/01 2014

0.2.0

0.2.0.0 https://github.com/asm89/stack-cors

Cross-origin resource sharing library and stack middleware

  Sources   Download

MIT

The Requires

 

cors stack

14/08 2013

0.1.0

0.1.0.0 https://github.com/asm89/stack-cors

Cross-origin resource sharing library and stack middleware

  Sources   Download

MIT

The Requires

 

cors stack