* @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; use support\Redis; class Auth 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', '*'), ]); $admin=Redis::get($request->header('satoken')); if(!$admin){ return json(['code'=>-1,'msg'=>'登录失效']); } $request->admin=json_decode($admin,true); return $handler($request); } }