【笔记整理】laravel HTTP中间件的介绍及创建
发布时间 - 2021-09-13 00:00:00 点击率:次下面是我看的视频整理的笔记,供大家参考。以下是一些基础知识,如果对基础知识不熟悉的可以看看。我上一遍文章分享的是composer安装laravel,想看更多文章,关注我,希望能给大家提供帮助。
中间件其实就是在路由上面加了一层过滤或是一层保护,前缀和命名空间都是作为group的数组参数传进去的,中间件也是作为group的数组参数传进去
一、中间件书写
添加中间件前
Route::group(['prefix' => 'admin','namespace'=>'Admin'], function () {
Rount::get('login','IndexController@login');
Rount::get('index','IndexController@index');
});添加web中间件后
Route::group(['prefix' => 'admin','namespace'=>'Admin','middleware'=>['web']], function () {
Rount::get('login','IndexController@login');
Rount::get('index','IndexController@index');
});web中间件可以用session功能,启用CSRF保护
Route::get('/',function(){
session(['key'=>123]);
return view('welcome');
});再设置一个路由,用来输出session
Route::get('/test',function(){
echo session('key');
return 'test';
});但因为不在一个中间件里,所以取不出session的值
下面我们设置一下把路由放到一个分组的中间件
Route::group(['middleware'=>['web']], function () {
Route::get('/',function(){
session(['key'=>123]);
return view('welcome');
});
Route::get('/test',function(){
echo session('key');
return 'test';
});
});系统默认的web中间件,中间件在Kernel.php中
使用web中间件时,才会使用session
二、自己手动在Kernel.php文件中定义一个后台管理云登录的中间件
定义前:
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
];定义后:
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'admin.login' => \App\Http\Middleware\AdminLogin::class,
];在cmd窗口切换到项目目录可以用命令创建中间件
php artisan make:middleware AdminLogin
然后在Middleware文件夹查看AdminLogin.php文件
然后调用刚才创建的中间件
Route::group(['middleware'=>['web','admin.login'],], function () { Route::get('/',function(){ session(['key'=>123]); return view('welcome'); }); Route::get('/test',function(){ echo session('key'); return 'test'; }); });三、后台超级管理员的验证
Route::group(['prefix' => 'admin','namespace'=>'Admin','middleware'=>'web'], function () { Rount::get('login','IndexController@login');//登录不需要后台管理员的超级认证 }); Route::group(['prefix' => 'admin','namespace'=>'Admin','middleware'=>'admin.login'], function (){ Rount::get('index','IndexController@index');//超级管理员需要认证后才能进入欢迎页面和编辑页面 Rount::resource('article','ArticleController'); });
任何一个用户都可以登录,但是如果登录了成功,就进入欢迎页面,没有登录成功就在登录页面,因为登录的信息存到session里,所以我们利用session的信息判断是否登录
模拟登录是将登录信息写到session里面,然后找到Admin包下IndexController控制器
1]); //登录信息用admin存储 return '登录
' } }
我们在中间件里输出session测试一下
然后在Middleware文件夹查看AdminLogin.php文件
验证:
我们先登录一下,然后访问欢迎页面,如果输出1,表示我们设置成功了(登录时把1存到session里,然后进入欢迎页面,欢迎页面会调用中间件的AdminLogin.php,),
我们继续设置
Middleware文件夹的AdminLogin.php文件
以上步骤是我学习的笔记,我把要操作的步骤或重点的记了下来,如果哪有不懂可以留言。谢谢大家支持。希望能为大家提供帮助,如果想看更多信息,关注我,下一篇继续分享。
# laravel # 可以用 # 想看 # 的是 # 都是 # 就在 # 我看 # 不出 # 不需要 # 才会 # 不懂
相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571 】
相关推荐: Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询 JavaScript实现Fly Bird小游戏 如何批量查询域名的建站时间记录? 如何解决hover在ie6中的兼容性问题 制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站? 如何快速搭建支持数据库操作的智能建站平台? Laravel怎么解决跨域问题_Laravel配置CORS跨域访问 Python制作简易注册登录系统 HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】 浅析上传头像示例及其注意事项 如何在不使用负向后查找的情况下匹配特定条件前的换行符 Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能 如何快速打造个性化非模板自助建站? Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势 Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】 如何用西部建站助手快速创建专业网站? 晋江文学城电脑版官网 晋江文学城网页版直接进入 企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做? Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载 Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件 如何快速建站并高效导出源代码? 谷歌Google入口永久地址_Google搜索引擎官网首页永久入口 Swift开发中switch语句值绑定模式 ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】 音响网站制作视频教程,隆霸音响官方网站? Laravel观察者模式如何使用_Laravel Model Observer配置 昵图网官方站入口 昵图网素材图库官网入口 如何在阿里云高效完成企业建站全流程? lovemo网页版地址 lovemo官网手机登录 使用C语言编写圣诞表白程序 Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南 Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件 Python自然语言搜索引擎项目教程_倒排索引查询优化案例 Python3.6正式版新特性预览 如何快速上传自定义模板至建站之星? Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解 Laravel怎么在Blade中安全地输出原始HTML内容 如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环 如何用狗爹虚拟主机快速搭建网站? 如何在腾讯云服务器快速搭建个人网站? html5audio标签播放结束怎么触发事件_onended回调方法【教程】 微信小程序 scroll-view组件实现列表页实例代码 laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法 如何在橙子建站上传落地页?操作指南详解 大连 网站制作,大连天途有线官网? EditPlus中的正则表达式实战(6) Laravel怎么在Controller之外的地方验证数据 音乐网站服务器如何优化API响应速度? 如何用搬瓦工VPS快速搭建个人网站? 微信小程序 input输入框控件详解及实例(多种示例)


{
Rount::get('index','IndexController@index');//超级管理员需要认证后才能进入欢迎页面和编辑页面
Rount::resource('article','ArticleController');
});