laravel利用中间件做防非法登录和权限控制示例


Posted in PHP onOctober 21, 2019

laravel框架的中间件非常好用,使得我们的防非法和rbac可以简单快速的实现

中间件就是控制路由的访问,进行分类并统一管理

1、首先我们打开artisan输入下面的命令行,创建一个中间件文件

php artisan make:middleware AdminLogin

执行命令后我们会发现Middleware文件夹会多出一个AdminLogin文件

2、然后我们打开kernel.php,将这个中间件加入到路由中间件中

protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'admin.login' => \App\Http\Middleware\AdminLogin::class,
  ];

可以看到我们在这个数组用一个下标为admin.login指向了这个中间节类

3、然后在路由上将这个中间件加入关联上

Route::group(['middleware' => ['web','admin.login.login']], function () {
 
  Route::get('/admin/login/login','Admin\LoginController@login');
  //登录页面
  Route::get('/admin/index/index','Admin\IndexController@index'); 
 
  //后台首页路由
 
 
});

这里一定要将登录的路由和后台路由放到一个关联中间件中,只有放到同一个中间件中,session才能共用

4、最后我们在Middleware下的AdminLogin.php中修改一下原本的代码

在这里我们做一个简单的小判断,判断一下有没有session存在,如果有的话就直接走我们现在访问的路由,如果没有session就给他重定向到登录页面

一个简单的防非法登录就可以用了

这种方法我们也可以拿来做rbac,也是建立一个中间件,进行session判断,查库中该管理员是否对有该权限访问该路由

此时您可能会用到

$route = $request->path();

他的作用就是获取到你当前访问的路由再进行判断可不可以访问

以上这篇laravel利用中间件做防非法登录和权限控制示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
国内php原创论坛
Oct 09 PHP
php在页面中调用fckeditor编辑器的方法
Jun 10 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
Jun 03 PHP
php 强制下载文件实现代码
Oct 28 PHP
调试WordPress中定时任务的相关PHP脚本示例
Dec 10 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
PHP strip_tags保留多个HTML标签的方法
May 22 PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 PHP
php PDO判断连接是否可用的实现方法
Apr 03 PHP
php 类中的常量、静态属性、非静态属性的区别
Apr 09 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
Oct 24 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
Oct 21 #PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
Oct 21 #PHP
laravel 实现上传图片到本地和前台访问示例
Oct 21 #PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 21 #PHP
Laravel 之url参数,获取路由参数的例子
Oct 21 #PHP
关于laravel-admin ueditor 集成并解决刷新的问题
Oct 21 #PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 #PHP
You might like
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
php数组的一些常见操作汇总
2011/07/17 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
IE与firefox之jquery用法区别
2008/10/03 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
js实现按座位号抽奖
2017/04/05 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
webpack打包node.js后端项目的方法
2018/03/10 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python实现图片筛选程序
2018/10/24 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
python获取txt文件词向量过程详解
2019/07/05 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
django之导入并执行自定义的函数模块图解
2020/04/01 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
婚前协议书
2014/04/15 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
建筑工地标语
2014/06/18 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
老人节标语大全
2014/10/08 职场文书
经理岗位职责
2015/02/02 职场文书
总经理检讨书范文
2015/02/16 职场文书
驻村工作简报
2015/07/20 职场文书
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL
教你用python实现12306余票查询
2021/06/30 Python