laravel框架中间件简单使用方法示例


Posted in PHP onJanuary 25, 2020

本文实例讲述了laravel框架中间件简单使用方法。分享给大家供大家参考,具体如下:

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

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

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

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

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

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

<?php
namespace App\Http\Middleware;
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的app\Http\Middleware\目录就会多一个TestMiddle.php的中间件文件

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

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

'TestMiddle' => \App\Http\Middleware\TestMiddle::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']);

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php visitFile()遍历指定文件夹函数
Aug 21 PHP
php自动注册登录验证机制实现代码
Dec 20 PHP
PHP 第二节 数据类型之数值型
Apr 28 PHP
php日期转时间戳,指定日期转换成时间戳
Jul 17 PHP
php中DOMElement操作xml文档实例演示
Mar 26 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
Nov 07 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
Jun 12 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
thinkPHP框架实现的简单计算器示例
Dec 07 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
Jan 23 #PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 #PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
Jan 23 #PHP
php面向对象基础详解【星际争霸游戏案例】
Jan 23 #PHP
PHP数据源架构模式之表入口模式实例分析
Jan 23 #PHP
TP3.2.3框架文件上传操作实例详解
Jan 23 #PHP
php的RSA加密解密算法原理与用法分析
Jan 23 #PHP
You might like
php download.php实现代码 跳转到下载文件(response.redirect)
2009/08/26 PHP
php二分查找二种实现示例
2014/03/12 PHP
微信支付开发告警通知实例
2016/07/12 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
picChange 图片切换特效的函数代码
2010/05/06 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
Javascript 按位取反运算符 (~)
2014/02/04 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
Vue.js教程之axios与网络传输的学习实践
2017/04/29 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
nodejs实现日志读取、日志查找及日志刷新的方法分析
2019/05/20 NodeJs
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
浅谈python对象数据的读写权限
2016/09/12 Python
Python编程中NotImplementedError的使用方法
2018/04/21 Python
python 除法保留两位小数点的方法
2018/07/16 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
python对日志进行处理的实例代码
2018/10/06 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
应届生污水处理求职信
2013/11/06 职场文书
学校联谊活动方案
2014/02/15 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
小学班主任评语
2014/12/29 职场文书