webman暂时不能实现控制器级别的中间件,如何实现控制器继承公共控制器来实现登录授权判断

coding

可以给个示例代码吗

2883 1 3
1个回答

walkor

鉴权用中间键来做,可以在中间键中判断当前访问的是哪个控制器,然后决定是否执行登录权限判断,类似如下:

<?php
namespace support\middleware;

use Webman\MiddlewareInterface;
use Webman\Http\Response;
use Webman\Http\Request;

class AuthCheckTest implements MiddlewareInterface
{
    public function process(Request $request, callable $next) : Response
    {
        // 只有controller是app\controller\Index时才执行权限验证
        if ($request->controller == \app\controller\Index::class) {
            $session = $request->session();
            if (!$session->get('userinfo')) {
                return redirect('/user/login');
            }
        }
        return $next($request);
    }
}
年代过于久远,无法发表回答
🔝