laravel 中间件
- 创建中间件命令
- php artisan make:middleware CheckLogin
- 执行完以上命令会在app/Http/Middleware目录下创建一个新的中间件类CheckLogin.php。
- 创建完以后还需要注册中间件在app/Http/Kernel.php中:
- protected $routeMiddleware = [
- 'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
- 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
- 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
- 'can' => \Illuminate\Auth\Middleware\Authorize::class,
- 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
- 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
- //这就是新注册的中间件
- 'checklogin' => \App\Http\Middleware\CheckLogin::class, ];
- 可以在刚创建的中间件里写验证如下:
- <?php
- namespace App\Http\Middleware;
- use Closure;
- use Illuminate\Support\Facades\Session;
- class CheckLogin{
- /**
- * Handle an incoming request.
- *
- * @param \Illuminate\Http\Request $request
- * @param \Closure $next
- * @return mixed
- */
- public function handle($request, Closure $next)
- {
- $userid = Session::get('_userid');
- $login_sts = Session::get('_login_sts');
- if (empty($userid) || empty($login_sts)){
- return response()->view('admin/login');
- }
- return $next($request);
- }
- }
- 接着就是怎么使用中间件功能了
- Route::group(['namespace'=>'Admin','middleware'=>'checklogin'],function (){
- Route::get('admins','IndexController@index');
- Route::get('logout','IndexController@logout');});
- 这里直接使用的是路由群组,只要把路由放在群组之中都会经过这个验证,[‘namespace’=>’Admin’]是命名空间,[‘middleware’=>’checklogin’]这就是中间件验证,之前注册时注册名为checklogin,所以middleware后直接写checklogin就可以了
laravel 中间件的更多相关文章
- (学习笔记)laravel 中间件
(学习笔记)laravel 中间件 laravel的请求在进入逻辑处理之前会通过http中间件进行处理. 也就是说http请求的逻辑是这样的: 建立中间件 首先,通过Artisan命令建立一个中间件. ...
- laravel中间件源码分析
laravel中间件源码分析 在laravel5.2中,HTTP 中间件为过滤访问你的应用的 HTTP 请求提供了一个方便的机制.在处理逻辑之前,会通过中间件,且只有通过了中间件才会继续执行逻辑代码. ...
- laravel中间件使用
1.在app/Http/Kernel.php文件中配置中间件文件,例如: protected $routeMiddleware = [ 'auth' => \Illuminate\Auth\Mi ...
- laravel中间件的创建思路分析
网上有很多解析laravel中间件的实现原理,但是不知道有没有读者在读的时候不明白,作者是怎么想到要用array_reduce函数的? 本文从自己的角度出发,模拟了如果我是作者,我是怎么实现这个中间件 ...
- laravel中间件简单使用
laravel内置了一个中间件来验证用户是否经过认证,如果用户没有经过认证,中间件会将用户重定向到登录页面,否则如果用户经过认证,中间件就会允许请求继续往前进入下一步操作. 当然,除了认证之外,中间件 ...
- laravel中间件的使用
简介HTTP 中间件提供了为过滤进入应用的 HTTP 请求提供了一套便利的机制.例如,Laravel 内置了一个中间件来验证用户是否经过授权,如果用户没有经过授权,中间件会将用户重定向到登录页面,否则 ...
- laravel中间件-----------middleware
middleware中间件 是访问到达服务器后在被对应的路由处理之前所经过的一层过滤层,故称中间件. 中间件是存放在app\http\middleware中,需要定一个 handle 处理方法,在ha ...
- Laravel中间件
先谈一谈中间件的使用场景,比如路由转到一张页面,我们需要记录用户的cookie,或者检测用户的访问权限,这些操作如果全写在控制器里是不合适的,因为随着业务的扩充,控制器里的业务逻辑会越来越臃肿,难以维 ...
- 【laravel5.6】 laravel中间件内生成参数并且传递到控制器的2种方法
中间件方法: /** * 自定义中间件: * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return ...
随机推荐
- Python/spss-多元回归建模-共线性诊断1(推荐A)
欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction ...
- Vue.js 模板指令
1. 数据渲染:v-text.v-html(保存了html结构).{{}}(自动更新): 2. 控制模块隐藏:v-if:直接不渲染 DOM 元素: v-show:css 里的 display:none ...
- numpy笔记—np.sum中keepdims作用
A = np.random.randn(4,3) B = np.sum(A, axis = 1, keepdims = True) 我们使用(keepdims = True)来确保 A.shape 是 ...
- JavaScript遍历对象中所有元素
操作对象如下,属性名不确定: 遍历方法: var temp = new Array(); for(var i in result.datas[0]){ temp.push(result.datas[0 ...
- C#自绘蒙版控件,带延时隐藏显示,拷贝底图功能
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...
- buildroot构建项目(四)--- u-boot 2017.11 适配开发板修改 2 ---- 系统启动初始化之一
一.代码分析 上一节已经分析了链接文件,知道了首先代码是从 _start 开始,之后设置了中断向量表,然后从 start.s 开始运行. _start:vectors.S (arch\arm\lib) ...
- Java SE之反射技术[Field](二)
如果对于反射的基本概念还不了解的请见上一帖子.本文仅谈fields的用法demo /** * * @author Zen Johnny * */ package com.cpms.test; impo ...
- python时间序列画图plot总结
画图从直觉上来讲就是为了更加清晰的展示时序数据所呈现的规律(包括趋势,随时间变化的规律(一周.一个月.一年等等)和周期性规律),对于进一步选择时序分析模型至关重要.下面主要是基于pandas库总结一下 ...
- 【反射】利用java反射原理将xml文件中的字段封装成对应的Bean
本例使用的xml解析方式为jdom ... <ROOT> <Consignment> ... </Consignment> </ROOT> 解析xml文 ...
- 【Elasticsearch】Elasticsearch在windows下的安装方法
版本 elasticsearch-2.4.4 2.4.4版本下载地址 下载地址1 下载地址2 启动 进入bin目录,双击elasticsearch.bat: 在浏览器中输入http://localho ...