diff --git a/app/api/middleware/AccessControlTest.php b/app/api/middleware/AccessControlTest.php new file mode 100644 index 0000000..fa5f4f3 --- /dev/null +++ b/app/api/middleware/AccessControlTest.php @@ -0,0 +1,39 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +namespace app\api\middleware; + + +use Webman\MiddlewareInterface; +use Webman\Http\Response; +use Webman\Http\Request; + +class AccessControlTest implements MiddlewareInterface +{ + public function process(Request $request, callable $handler) : Response + { + // 如果是opitons请求则返回一个空的响应,否则继续向洋葱芯穿越,并得到一个响应 + $response = $request->method() == 'OPTIONS' ? response('') : $handler($request); + + // 给响应添加跨域相关的http头 + $response->withHeaders([ + 'Access-Control-Allow-Credentials' => 'true', + 'Access-Control-Allow-Origin' => $request->header('origin', '*'), + 'Access-Control-Allow-Methods' => $request->header('access-control-request-method', '*'), + 'Access-Control-Allow-Headers' => $request->header('access-control-request-headers', '*'), + ]); + + return $response; + } +} \ No newline at end of file diff --git a/app/api/middleware/StaticFile.php b/app/api/middleware/StaticFile.php deleted file mode 100644 index 25ed8a1..0000000 --- a/app/api/middleware/StaticFile.php +++ /dev/null @@ -1,42 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ - -namespace app\api\middleware; - -use Webman\MiddlewareInterface; -use Webman\Http\Response; -use Webman\Http\Request; - -/** - * Class StaticFile - * @package app\middleware - */ -class StaticFile implements MiddlewareInterface -{ - public function process(Request $request, callable $next): Response - { - // Access to files beginning with. Is prohibited - if (strpos($request->path(), '/.') !== false) { - return response('

403 forbidden

', 403); - } - /** @var Response $response */ - $response = $next($request); - // Add cross domain HTTP header - /*$response->withHeaders([ - 'Access-Control-Allow-Origin' => '*', - 'Access-Control-Allow-Credentials' => 'true', - ]);*/ - return $response; - } -} diff --git a/config/middleware.php b/config/middleware.php index 8e964ed..94de1ee 100644 --- a/config/middleware.php +++ b/config/middleware.php @@ -12,4 +12,9 @@ * @license http://www.opensource.org/licenses/mit-license.php MIT License */ -return []; \ No newline at end of file +return [ + '' => [ + // ... 这里省略其它中间件 + app\api\middleware\AccessControlTest::class, + ] +]; \ No newline at end of file