• laravel中间件简单使用


    laravel内置了一个中间件来验证用户是否经过认证,如果用户没有经过认证,中间件会将用户重定向到登录页面,否则如果用户经过认证,中间件就会允许请求继续往前进入下一步操作。

    当然,除了认证之外,中间件还可以被用来处理更多其它任务。比如:CORS 中间件可以用于为离开站点的响应添加合适的头(跨域);日志中间件可以记录所有进入站点的请求。

    Laravel框架自带了一些中间件,包括认证、CSRF 保护中间件等等。所有的中间件都位于 app/Http/Middleware目录。

    中间是请求前还是请求后执行取决于中间件本身,以下中间件会在请求处理前执行一些任务

    <?php
    
    namespace AppHttpMiddleware;
    
    use Closure;
    
    class TestMiddle
    {
    
        public function handle($request, Closure $next)
        {
            // 执行动作
         
            if(!$request->session()->has('huser')){
                return redirect("login/index");
            }
            return $next($request);
            
            
        }
    }

    而下面这个中间件则会在请求处理后执行其任务:

    <?php
    
    namespace AppHttpMiddleware;
    
    use Closure;
    
    class TestMiddle
    {
    
        public function handle($request, Closure $next)
        {
            $response = $next($request);
    
            // 执行动作
            if(!$request->session()->has('huser')){
                return redirect("login/index");
            }
            
            return $response;
        
            
            
        }
    }

    中间件可以自己在编辑器里面新建对应类生成,也可用命令生成

    php artisan make:middleware TestMiddle

    此时,laravel的appHttpMiddleware目录就会多一个TestMiddle.php的中间件文件

    此时中间件还不能直接使用,必须把它注册到我们的laravel中,如下

    只需在 app/Http/Kernel.php 类(3个属性,对应里面加入,我有时用路由的)

    'TestMiddle' => AppHttpMiddlewareTestMiddle::class,

    分配中间件到路由,下面介绍三种方式

    Route::get('/',function(){
        return redirect('home/index');
    })->middleware('TestMiddle');
    
    Route
    ::group(['middleware' => ['TestMiddle']], function() { Route::controller("db","DataBaseController"); });
    Route
    ::controller("home","HomeController",['middleware'=>'TestMiddle']);

    http://www.cnblogs.com/fwqblogs/p/6641569.html

  • 相关阅读:
    右值全部内容
    右值和forward
    alg data以这本
    代码学习only3
    cpp未结
    接下来要处理
    两个进程通过共享内存同步,控制播放器关闭
    接下来
    选择修改还是扩展?
    loadrunner 无法保存许可信息
  • 原文地址:https://www.cnblogs.com/fps2tao/p/7804220.html
Copyright © 2020-2023  润新知