五月天激情丁香,国产精品2019,国产成人精品亚洲2020,国产精品免费视频一区二区三区,开心久久婷婷综合中文字幕,天堂视频在线观看免费完整版

請(qǐng)求攔截

EasySwoole 的控制器并沒(méi)有提供類似中間件的說(shuō)法,而是提供了控制器中的 onRequest 事件進(jìn)行驗(yàn)證。

例如,我們需要對(duì) /api/user/* 下的路徑進(jìn)行 cookie 驗(yàn)證。那么有以下兩種方案:

全局 Request 及 Response 事件

全局 Initialize 事件 中注冊(cè).

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');
        // 對(duì) cookie 進(jìn)行判斷,比如在數(shù)據(jù)庫(kù)或者是 redis 緩存中,存在該 cookie 信息,說(shuō)明用戶登錄成功
        $isLogin = true;
        if ($isLogin) {
            // 返回 true 表示繼續(xù)往下執(zhí)行控制器 action
            return true;
        } else {
            // 這一步可以給前端響應(yīng)數(shù)據(jù),告知前端未登錄
            $data = Array(
                "code" => 200,
                "result" => null,
                "msg" => '請(qǐng)先登錄'
            );
            $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 版本之前:可在項(xiàng)目根目錄的 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');
        // 對(duì) cookie 進(jìn)行判斷,比如在數(shù)據(jù)庫(kù)或者是 redis 緩存中,存在該 cookie 信息,說(shuō)明用戶登錄成功
        $isLogin = true;
        if ($isLogin) {
            // 返回 true 表示繼續(xù)往下執(zhí)行控制器 action
            return true;
        } else {
            // 這一步可以給前端響應(yīng)數(shù)據(jù),告知前端未登錄
            $this->writeJson(401, null, '請(qǐng)先登錄');
            // 返回 false 表示不繼續(xù)往下執(zhí)行控制器 action
            return false;
        }
    }
}

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

行為權(quán)限校驗(yàn)也是如此,可以判斷某個(gè)用戶是否對(duì)該控制器的 action 或者請(qǐng)求路徑有沒(méi)有權(quán)限

主站蜘蛛池模板: 美女视频一区二区三区 | 久久国产精品999 | 中文字幕不卡免费视频 | 五月天丁香花婷婷 | 欧美黄色性生活 | 成年女人黄小视频 | 久青草国产手机在线视频 | 青青青青爽极品在线视频 | 国产日本亚洲 | 激情中文网 | 国产成人精品一区二区三区 | 丁香六月激情婷婷 | 久久精品国产99国产精品澳门 | 国产成人一区二区三区在线播放 | 精品久久网站 | 久久福利国产 | 国产精品久久现线拍久青草 | 国产欧美日韩综合精品无毒 | 久久国产精品一区免费下载 | 五月天黄色网 | 国产只有精品 | 日本欧美国产 | 国产精品久久久久久久久久久久 | 国产精品视频免费视频 | 国产一区亚洲欧美成人 | 免费一级电影 | 亚洲欧美日韩精品久久久 | 欧美日韩视频一区二区三区 | 久久99综合国产精品亚洲首页 | 国产精品高清在线观看 | 激情综合色综合啪啪开心 | 中文字幕日韩一区二区三区不卡 | 国产成人综合亚洲欧美天堂 | 婷五月综合 | 奇米影视777在线播放第四 | 精品综合一区二区三区 | 九九九九在线精品免费视频 | 久久久久99精品成人片三人毛片 | 国产精品免费观看视频播放 | 亚洲欧美日产综合在线网 | 99视频这里有精品 |