zoukankan      html  css  js  c++  java
  • laravel中间件

    1.控制器方法中自定义

    $this->middleware(function ($request, $next) {
        return $next($request);
    });

    2.控制器方法中调用

    注册中间件
    lumen:
    $app->routeMiddleware([
        'auth' => AppHttpMiddlewareAuthenticate::class,
        'UserCheck' => AppHttpMiddlewareUserCheck::class,
    ]);

    laravel:appHttpKernel.php

     protected $routeMiddleware = [
            'auth' => AppHttpMiddlewareAuthenticate::class,
            'SensitiveFilter' => AppHttpMiddlewareUserCheck::class
        ];
    
        /**
         * The priority-sorted list of middleware.
         *
         * This forces non-global middleware to always be in the given order.
         *
         * @var array
         */
        protected $middlewarePriority = [
            AppHttpMiddlewareAuthenticate::class,
            AppHttpMiddlewareUserCheck::class,
        ];
    $this->middleware('UserCheck');

    UserCheck中间件:appHttpMiddlewareUserCheck.php

    <?php
    namespace AppHttpMiddleware;
    
    use Closure;
    
    class UserCheck
    {
        /**
         * Handle an incoming request.
         *
         * @param  IlluminateHttpRequest  $request
         * @param  Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {
            $path      = $request->route();
            $actionArr = getAction($path);
            $staffInfo = getLoginInfo();
    
            if(empty($staffInfo['info']))
            {
                return response()->json(['code' => $actionArr['action'].':fail','errMsg' => '用户可能已经被删除']);
            }
    
            if(!empty($staffInfo['info']['tmp']))
            {
                //锁定状态的用户信息不可以提交修改
                $lock = $staffInfo['info']['tmp']['lock'];
                if($request->isMethod('post'))
                {
                    if($lock == 1)
                    {
                        return response()->json(['code' => $actionArr['action'].':fail','errMsg' => '用户信息已经锁定,请等待人事审核']);
                    }
                }
            }
    
            $request->attributes->add(['staffInfo'=>$staffInfo]);
    
            return $next($request);
        }
    }
  • 相关阅读:
    syslog命令
    linux命令 info
    Alibaba(阿里) RocketMQ入门实例
    java基础-学java util类库总结
    java 23种设计模式教程
    Linux
    Scrapy框架
    MongoDB的安装与使用
    爬虫小案例——爬取天猫
    爬虫小案例——爬取豆瓣电影
  • 原文地址:https://www.cnblogs.com/zuikeol/p/12993150.html
Copyright © 2011-2022 走看看