mehmetik/cors

`CorsSupport`类是一个用于管理跨域资源共享(CORS)的库,也是一个在堆栈应用程序中操作HTTP请求和响应的中间件。

1.0 2022-12-27 13:58 UTC

This package is auto-updated.

Last update: 2024-09-27 17:46:48 UTC


README

此包提供了一个库和堆栈中间件,用于在Stack应用程序中处理跨域资源共享(CORS)。

安装

要安装此包,请通过Composer要求它。

composer require mehmetik/cors

用法

此包可以用作库或作为stack中间件

选项

allowedMethodsallowedHeaders选项不区分大小写。

您不需要同时提供allowedOriginsallowedOriginsPatterns。如果传入的字符串之一匹配,则视为有效源。

如果向allowedMethodsallowedOriginsallowedHeaders提供['*'],则允许所有方法/来源/头。

示例:使用库

<?php
use mehmetik\Cors\CorsSupport;

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

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

示例:使用堆栈中间件

<?php
use mehmetik\Cors\Cors;

$app = new Stack\Builder();
$app->push(new Cors($app, [
    'allowedHeaders'         => ['x-allowed-header', 'x-other-allowed-header'],
    'allowedMethods'         => ['DELETE', 'GET', 'POST', 'PUT'],
    'allowedOrigins'         => ['https://'],
    'allowedOriginsPatterns' => ['/localhost:\d/'],
    'exposedHeaders'         => false,
    'maxAge'                 => false,
    'supportsCredentials'    => false,
]));

许可

此包受MIT许可证的许可。有关详细信息,请参阅LICENSE文件。