waka / wn-wakapi-plugin
用于管理API和连接的插件
dev-master
2023-09-23 11:56 UTC
Requires
- vimeo/vimeo-api: ^3.0.10
This package is auto-updated.
Last update: 2024-09-10 11:56:03 UTC
README
此插件基于 https://github.com/barryvdh/laravel-cors。
插件的所有配置都可以通过后端设置完成。
支持以下CORS头
- Access-Control-Allow-Origin
- Access-Control-Allow-Headers
- Access-Control-Allow-Methods
- Access-Control-Allow-Credentials
- Access-Control-Expose-Headers
- Access-Control-Max-Age
目前,这些头信息会发送到每个请求。目前无法按路由进行配置。
注意
我在Cors类中进行了修改
public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true) par public function handle(Request $request, int $type = self::MAIN_REQUEST, bool $catch = true): Response
我还修改了HandlePreflight的handle方法。看起来似乎可以工作,但我没有测量其影响
public function handle($request, Closure $next) { $response = $next($request); if ($this->cors->isPreflightRequest($request) && $this->hasMatchingCorsRoute($request)) { $preflight = $this->cors->handlePreflightRequest($request); $response->headers->add($preflight->headers->all()); } return $response; } par public function handle($request, Closure $next) { $response = $next($request); if ($this->cors->isPreflightRequest($request) && $this->hasMatchingCorsRoute($request)) { $preflight = $this->cors->handlePreflightRequest($request); $response = response('', 200); $response->headers->add($preflight->headers->all()); } return $response; }
设置
安装插件后,访问October CMS后端设置中的CORS设置页面。
您可以将 * 添加到 允许的来源、允许的头信息 和 允许的方法 中,以允许来自任何地方的任何类型的CORS请求。
建议您对这些设置更加明确。您可以通过重复字段为每个头信息添加值。
为了插件按预期工作,请务必设置这些初始设置!
文件系统配置
作为后端设置的替代方案,您可以在插件根目录中创建一个 config/config.php 文件来配置它。
文件系统配置将覆盖任何定义的后端设置。
<?php // plugins/waka/wakapi/config/config.php return [ 'supportsCredentials' => true, 'maxAge' => 3600, 'allowedOrigins' => ['*'], 'allowedHeaders' => ['*'], 'allowedMethods' => ['GET', 'POST'], 'exposedHeaders' => [''], ];