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);
        }
    }
  • 相关阅读:
    BZOJ 2654: tree
    洛谷P1972[SDOI2009]HH的项链
    洛谷 P3833 [SHOI2012]魔法树
    P2167 [SDOI2009]Bill的挑战
    洛谷 P2145 [JSOI2007]祖码
    洛谷 P4170 [CQOI2007]涂色
    P2024 [NOI2001]食物链
    USACO 2012 December ZQUOJ 24122 Scrambled Letters(二分)
    USACO 2012 December ZQUOJ 24128 Wifi Setup(动态dp)
    2013长春网赛1009 hdu 4767 Bell(矩阵快速幂+中国剩余定理)
  • 原文地址:https://www.cnblogs.com/zuikeol/p/12993150.html
Copyright © 2011-2022 走看看