国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman中間件部分執(zhí)行

MarkGo

config\middleware.php

<?php
return [
    '' => [
        app\middleware\AccessControl::class,
        app\middleware\ActionHook::class,
    ],
];

config\route.php

<?php

Route::group('/front',function (){
    Route::group('/v1',function (){
        Route::group('/util',function (){
            Route::get('/init.json',[app\controller\v1\util::class,'init']);
            Route::post('/code2session',[app\controller\v1\util::class,'code2session']);
            Route::post('/addFav',[app\controller\v1\util::class,'addFav'])->middleware([
                app\middleware\chkLogin::class
            ]);
        });
    });
})->middleware([
    app\middleware\userInfo::class,
]);

訪問addFav時,執(zhí)行順序為:
1--->app\middleware\ActionHook::class
2--->app\middleware\chkLogin::class
結(jié)束。

預期順序:
1--->app\middleware\AccessControl::class
2--->app\middleware\ActionHook::class
3--->app\middleware\userInfo::class
4--->app\middleware\chkLogin::class

不知道為什么會跳過部分中間件執(zhí)行,
其中AccessControl為跨域請求,請求類型為option時返回對應的,
測試的時候也發(fā)option過去,但返回404.
通過post的方式請求addFav,
執(zhí)行了
ActionHook<---執(zhí)行beforeAction和afterAction。確定執(zhí)行了。
chkLogin<----檢測登錄狀態(tài)用的,返回了未登錄。

被忽略了的userInfo 嘗試過了在里面輸入任意內(nèi)容,終端都沒有輸出,感覺就是沒被調(diào)用到。

Workerman version:4.0.19
Webman 1.0.0

3672 1 1
1個回答

MarkGo

找到問題了。
AccessControl::class 沒執(zhí)行是因為 路由綁定的方式只有GET/POST,路由匹配不上,所以中間件沒執(zhí)行。
userInfo::class 沒被執(zhí)行是因為綁定到了最外層的group,路由綁定中間件只支持執(zhí)行當層的綁定,上一層的都不會被執(zhí)行。

解決方式:
1、存在跨域的需要執(zhí)行OPTION的不要綁定GET/POST,綁定any。
2、路由分多級組的話,中間件只能綁定到最小的那個組,不能綁定上面的組

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??