亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

請求攔截

EasySwoole 的控制器并沒有提供類似中間件的說法,而是提供了控制器中的 onRequest 事件進行驗證。

例如,我們需要對 /api/user/* 下的路徑進行 cookie 驗證。那么有以下兩種方案:

全局 Request 及 Response 事件

全局 Initialize 事件 中注冊.

public static function initialize()
{
    date_default_timezone_set('Asia/Shanghai');

    // onRequest v3.4.x+
    \EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_GLOBAL_ON_REQUEST, function (\EasySwoole\Http\Request $request, \EasySwoole\Http\Response $response) {
        $cookie = $request->getCookieParams('user_cookie');
        // 對 cookie 進行判斷,比如在數(shù)據(jù)庫或者是 redis 緩存中,存在該 cookie 信息,說明用戶登錄成功
        $isLogin = true;
        if ($isLogin) {
            // 返回 true 表示繼續(xù)往下執(zhí)行控制器 action
            return true;
        } else {
            // 這一步可以給前端響應(yīng)數(shù)據(jù),告知前端未登錄
            $data = Array(
                "code" => 200,
                "result" => null,
                "msg" => '請先登錄'
            );
            $response->withHeader('Content-Type', 'application/json;charset=utf-8');
            $response->withStatus(200);
            $response->write(json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
            // 返回 false 表示不繼續(xù)往下執(zhí)行控制器 action
            return false;
        }
    });

    // afterRequest v3.4.x+
    \EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_GLOBAL_AFTER_REQUEST, function (\EasySwoole\Http\Request $request, \EasySwoole\Http\Response $response) {

    });
}

EasySwoole 3.4.x 版本之前:可在項目根目錄的 EasySwooleEvent.php 中看到 onRequestafterRequest 方法。

定義 Base 控制器

<?php

namespace App\HttpController\Api\User;

use EasySwoole\Http\AbstractInterface\Controller;

abstract class Base extends Controller
{
    protected function onRequest(?string $action): ?bool
    {
        $cookie = $this->request()->getCookieParams('user_cookie');
        // 對 cookie 進行判斷,比如在數(shù)據(jù)庫或者是 redis 緩存中,存在該 cookie 信息,說明用戶登錄成功
        $isLogin = true;
        if ($isLogin) {
            // 返回 true 表示繼續(xù)往下執(zhí)行控制器 action
            return true;
        } else {
            // 這一步可以給前端響應(yīng)數(shù)據(jù),告知前端未登錄
            $this->writeJson(401, null, '請先登錄');
            // 返回 false 表示不繼續(xù)往下執(zhí)行控制器 action
            return false;
        }
    }
}

后續(xù),只要 /api/user/* 路徑下的控制器,都繼承自 Base 控制器,都可以自動實現(xiàn)對 cookie 攔截了

行為權(quán)限校驗也是如此,可以判斷某個用戶是否對該控制器的 action 或者請求路徑有沒有權(quán)限

主站蜘蛛池模板: 亚洲一级免费视频 | 欧美午夜精品久久久久久蜜 | 国产一级做a爱片久久毛片a | 久久伊人电影 | 精品国产一区二区三区久久久 | 91视频综合网| 中文字幕福利 | 午夜激情成人 | 中文字幕在线观看2021 | 美女一级毛片免费观看 | 国产中文字幕在线播放 | 亚洲a v网站 | 性生活大片免费看 | 在线欧美成人 | 日韩欧美国产精品一区二区 | 黄色av电影网站 | 久久久国产一区二区三区四区小说 | 免费看成年人视频在线 | 天天干天天爽天天操 | 69视频在线观看免费 | 精彩视频一区二区 | 91av福利视频| 天天上天天干 | 男女草逼网站 | 有码精品 | 美女内射毛片在线看3d | 国产高清色| 91豆麻精品91久久久久久 | 亚洲精品成人av | 91麻豆精品国产91久久久久推荐资源 | 天天躁日日躁aaaa视频 | 亚洲一级免费毛片 | 国产1区在线 | 国产精品国产三级国产在线观看 | 国产二区在线观看视频 | 婷婷色亚洲 | 天天操天天干天天爽 | 日韩精品一区二区免费视频 | 91精品国产综合久久久久久首页 | 日韩在线免费 | 精品国产青草久久久久福利 |