老莫的笔记本  
  
查看: 966|回复: 0

laravel 中间件的使用

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2019-6-3 18:22:42 | 显示全部楼层 |阅读模式
// 创建中间件的测试
// 1.创建中间件
//      php artisan make:middleware LaomoToken 创建了一个名叫 LaomoToken 的中间件
//      中间件所在位置:app/Http/Comtrollers/Middleware/LaomoToken.php
//
// 2.确认中间件的【执行顺序】,是过滤 输入 还是过滤输出。
//      2.1 如果过滤输入 : return $next($request);
//      2.2 如果过滤输出 : return $response;
//
// 3.注册中间件三类
//      3.1 如果是 全局中间件
//          注册三类:将相应的中间件类添加到 app/Http/Kernel.php 的数组属性 $middleware
//              例:
//               protected $middleware = [
//                      LaomoToken::class,
//              ];
//      
//      3.2 分配中间件到指定路由   
//              3.2.1 在 app/Http/Kernel.php 文件中分配给该中间件一个 key 追加到routeMiddleware中
//              例:
//                  protected $routeMiddleware = [
//                         'lma' => \App\Http\Middleware\LaomoToken::class
//                  ];
//              
//      3.3 分配到指定路由
//         
//              3.3。1 分配方式1 【键】  偷个懒用两个中间件试试
//              例:
//                  Route::get('/', function () {
//              
//              
//                     })->middleware('lma', 'auth');
//                     
//              3.3.2 分配方式 完整类名【不推荐】
//              
//                      })->middleware('lma', 'auth');
//              
//              3.3.3
//      
//       3.4 中间件组   【指定一个键名的方式将相关中间件分到同一个组里面】  
//                      [存在意义:中间件组的目的只是让一次分配给路由多个中间件的实现更加方便]
//      
//              操作:  在 HTTP Kernel 提供的 $middlewareGroups  追加
//         
//                      'blog' => [
//                          'lma',
//                      ]
//      
//       4.中间件参数                  
//      
//              用处吗,例如权限判断之流
//                  
//                  中间件参数可以在定义路由时通过 : 分隔中间件名和参数名来指定,多个中间件参数可以通过逗号分隔:
//      
//                   Route::put('post/{id}', function ($id) {
//
//                    })->middleware('role:editor');
//      
//      5.终端中间件【善后中间件,比方说 session 设置的】
//         
//         方式: 添加 terminate 方法
//          class StartSession
//          {
//              public function handle($request, Closure $next)
//              {
//                  return $next($request);
//               }
//
//              public function terminate($request, $response)
//              {
//                 // 存储session数据...
//              }
//          }  
//      

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表