1. 创建中间件命令
  1. php artisan make:middleware CheckLogin
  1. 执行完以上命令会在app/Http/Middleware目录下创建一个新的中间件类CheckLogin.php
  2. 创建完以后还需要注册中间件在app/Http/Kernel.php中:
  1. protected $routeMiddleware = [
  2.  
  3. 'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
  4.  
  5. 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
  6.  
  7. 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
  8.  
  9. 'can' => \Illuminate\Auth\Middleware\Authorize::class,
  10.  
  11. 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
  12.  
  13. 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
  14.  
  15. //这就是新注册的中间件
  16.  
  17. 'checklogin' => \App\Http\Middleware\CheckLogin::class, ];
  1. 可以在刚创建的中间件里写验证如下:
  1. <?php
  2.  
  3. namespace App\Http\Middleware;
  4.  
  5. use Closure;
  6.  
  7. use Illuminate\Support\Facades\Session;
  8.  
  9. class CheckLogin{
  10.  
  11. /**
  12.  
  13. * Handle an incoming request.
  14.  
  15. *
  16.  
  17. * @param \Illuminate\Http\Request $request
  18.  
  19. * @param \Closure $next
  20.  
  21. * @return mixed
  22.  
  23. */
  24.  
  25. public function handle($request, Closure $next)
  26.  
  27. {
  28.  
  29. $userid = Session::get('_userid');
  30.  
  31. $login_sts = Session::get('_login_sts');
  32.  
  33. if (empty($userid) || empty($login_sts)){
  34.  
  35. return response()->view('admin/login');
  36.  
  37. }
  38.  
  39. return $next($request);
  40.  
  41. }
  42.  
  43. }
  1. 接着就是怎么使用中间件功能了
  1. Route::group(['namespace'=>'Admin','middleware'=>'checklogin'],function (){
  2.  
  3. Route::get('admins','IndexController@index');
  4.  
  5. Route::get('logout','IndexController@logout');});
  1. 这里直接使用的是路由群组,只要把路由放在群组之中都会经过这个验证,[‘namespace’=>’Admin’]是命名空间,[‘middleware’=>’checklogin’]这就是中间件验证,之前注册时注册名为checklogin,所以middleware后直接写checklogin就可以了

laravel 中间件的更多相关文章

  1. (学习笔记)laravel 中间件

    (学习笔记)laravel 中间件 laravel的请求在进入逻辑处理之前会通过http中间件进行处理. 也就是说http请求的逻辑是这样的: 建立中间件 首先,通过Artisan命令建立一个中间件. ...

  2. laravel中间件源码分析

    laravel中间件源码分析 在laravel5.2中,HTTP 中间件为过滤访问你的应用的 HTTP 请求提供了一个方便的机制.在处理逻辑之前,会通过中间件,且只有通过了中间件才会继续执行逻辑代码. ...

  3. laravel中间件使用

    1.在app/Http/Kernel.php文件中配置中间件文件,例如: protected $routeMiddleware = [ 'auth' => \Illuminate\Auth\Mi ...

  4. laravel中间件的创建思路分析

    网上有很多解析laravel中间件的实现原理,但是不知道有没有读者在读的时候不明白,作者是怎么想到要用array_reduce函数的? 本文从自己的角度出发,模拟了如果我是作者,我是怎么实现这个中间件 ...

  5. laravel中间件简单使用

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

  6. laravel中间件的使用

    简介HTTP 中间件提供了为过滤进入应用的 HTTP 请求提供了一套便利的机制.例如,Laravel 内置了一个中间件来验证用户是否经过授权,如果用户没有经过授权,中间件会将用户重定向到登录页面,否则 ...

  7. laravel中间件-----------middleware

    middleware中间件 是访问到达服务器后在被对应的路由处理之前所经过的一层过滤层,故称中间件. 中间件是存放在app\http\middleware中,需要定一个 handle 处理方法,在ha ...

  8. Laravel中间件

    先谈一谈中间件的使用场景,比如路由转到一张页面,我们需要记录用户的cookie,或者检测用户的访问权限,这些操作如果全写在控制器里是不合适的,因为随着业务的扩充,控制器里的业务逻辑会越来越臃肿,难以维 ...

  9. 【laravel5.6】 laravel中间件内生成参数并且传递到控制器的2种方法

    中间件方法: /** * 自定义中间件: * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return ...

随机推荐

  1. Python/spss-多元回归建模-共线性诊断1(推荐A)

    欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction ...

  2. Vue.js 模板指令

    1. 数据渲染:v-text.v-html(保存了html结构).{{}}(自动更新): 2. 控制模块隐藏:v-if:直接不渲染 DOM 元素: v-show:css 里的 display:none ...

  3. numpy笔记—np.sum中keepdims作用

    A = np.random.randn(4,3) B = np.sum(A, axis = 1, keepdims = True) 我们使用(keepdims = True)来确保 A.shape 是 ...

  4. JavaScript遍历对象中所有元素

    操作对象如下,属性名不确定: 遍历方法: var temp = new Array(); for(var i in result.datas[0]){ temp.push(result.datas[0 ...

  5. C#自绘蒙版控件,带延时隐藏显示,拷贝底图功能

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...

  6. buildroot构建项目(四)--- u-boot 2017.11 适配开发板修改 2 ---- 系统启动初始化之一

    一.代码分析 上一节已经分析了链接文件,知道了首先代码是从 _start 开始,之后设置了中断向量表,然后从 start.s 开始运行. _start:vectors.S (arch\arm\lib) ...

  7. Java SE之反射技术[Field](二)

    如果对于反射的基本概念还不了解的请见上一帖子.本文仅谈fields的用法demo /** * * @author Zen Johnny * */ package com.cpms.test; impo ...

  8. python时间序列画图plot总结

    画图从直觉上来讲就是为了更加清晰的展示时序数据所呈现的规律(包括趋势,随时间变化的规律(一周.一个月.一年等等)和周期性规律),对于进一步选择时序分析模型至关重要.下面主要是基于pandas库总结一下 ...

  9. 【反射】利用java反射原理将xml文件中的字段封装成对应的Bean

    本例使用的xml解析方式为jdom ... <ROOT> <Consignment> ... </Consignment> </ROOT> 解析xml文 ...

  10. 【Elasticsearch】Elasticsearch在windows下的安装方法

    版本 elasticsearch-2.4.4 2.4.4版本下载地址 下载地址1 下载地址2 启动 进入bin目录,双击elasticsearch.bat: 在浏览器中输入http://localho ...