IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> laravel进阶学习之中间件 -> 正文阅读

[PHP知识库]laravel进阶学习之中间件

中间件一共分为三种

1.全局中间件

2.路由中间件

3.中间件组

全局中间件

? ? ? ? 顾名思义全局中间件就是每次请求都会经过的中间件,具体的位置在 app/Http/Kernel.php的$middleware

?也就是在处理请求时的管道操作sendRequestThroughRouter里面底层的闭包pipes()

?lavavel的默认全局中间件做了什么操作可以自己进去看下,包括检测代理的标头,检测配置配置以查看 CORS 服务,请求携带的数据量,属性的名称处理,还有转换数据结构等。

路由中间件

?全局中间件同路径下的 $routeMiddlewar 此中间件运用的地方在于放在路由之中自由校验,比如auth登录校验等

?放在路由之后来具体校验

作用的位子在vendor/laravel/framework/src/Illuminate/Routing/Router.php,此处会校验对应的中间件并进行对应的response

?用法在对应route后面定义->middleware('auth')例如

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

中间件组

和中间件一样相似,无非是对于部分中间件校验比较多的情况下可以选择中间件组的操作来减少代码的复杂度,具体是由多个中间件组成的数组

Route::group(['middleware' => 'web'],function($route){
    Route::get('debug_test', 'testController@test')->name('debug_test');
});

顺便提一句,构造函数的执行顺序是在路由中间件之前的,可能出现的问题是什么呢

例如一个接口请求

?

结果是这样的

?会最先执行构造函数后再执行中间件过滤方法最后执行对应的路由方法?

换句话说? ,如果需要在构造函数内获取必要的数据,必须要保证将数据放在路由之后来执行,避免说数据未找到

比如这样 Route::middleware('auth:sanctum')

或者换个写法? ,在在构造函数内这样写

?确保数据获取的执行顺序

还有一个问题是中间件的执行是由外到内,由前到后的执行的。也就是说在多层group的路由组里面还需要注意内外层的中间件执行顺序

暂时先写这么多,后面想到再补充

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 12:31:11  更:2021-11-11 12:31:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:31:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码