浏览代码

tested middlewares

mx 3 年之前
父节点
当前提交
f3700a551d
共有 3 个文件被更改,包括 36 次插入1 次删除
  1. 3 0
      README.md
  2. 22 0
      app/middleware/Cors.php
  3. 11 1
      config/middleware.php

+ 3 - 0
README.md

@@ -62,3 +62,6 @@ see [official doc](https://www.workerman.net/doc/webman/plugin/console.html)
 
 see [https://www.workerman.net/doc/webman/process.html](https://www.workerman.net/doc/webman/process.html)
 
+### Middlewares
+
+see [official doc](https://www.workerman.net/doc/webman/middleware.html)

+ 22 - 0
app/middleware/Cors.php

@@ -0,0 +1,22 @@
+<?php
+namespace app\middleware;
+
+use Webman\MiddlewareInterface;
+use Webman\Http\Response;
+use Webman\Http\Request;
+
+class Cors implements MiddlewareInterface
+{
+    public function process(Request $request, callable $next) : Response
+    {
+        $response = $request->method() == 'OPTIONS' ? response('') : $next($request);
+        $response->withHeaders([
+            'Access-Control-Allow-Credentials' => 'true',
+            'Access-Control->Allow-Origin' => $request->header('Origin', '*'),
+            'Access-Control->Allow-Method' => '*',
+            'Access-Control->Allow-Headers'=> '*',
+        ]);
+        return $response;
+    }
+    
+}

+ 11 - 1
config/middleware.php

@@ -12,4 +12,14 @@
  * @license   http://www.opensource.org/licenses/mit-license.php MIT License
  */
 
-return [];
+return [
+    // Global Middlewares
+    '' => [
+        \app\middleware\StaticFile::class,
+        \app\middleware\Cors::class,
+    ],
+
+    // Application Middlewares
+    // 'api' => [],
+    // 'admin' => [],
+];