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下MAIL的另一解决方案
Oct 09 PHP
一个没有MYSQL数据库支持的简易留言本的编写
Oct 09 PHP
PHP项目开发中最常用的自定义函数整理
Dec 02 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
微信自定义菜单的创建/查询/取消php示例代码
Aug 05 PHP
PHP进程通信基础之信号量与共享内存通信
Feb 19 PHP
PHPMAILER实现PHP发邮件功能
Apr 18 PHP
Laravel 读取 config 下的数据方法
Oct 13 PHP
php桥接模式应用案例分析
Oct 23 PHP
Yii redis集合的基本使用教程
Jun 14 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
递归列出所有文件和目录
2006/10/09 PHP
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
Python实现多行注释的另类方法
2014/08/22 Python
Python实现k-means算法
2018/02/23 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
python opencv实现简易画图板
2020/08/27 Python
Python识别处理照片中的条形码
2020/11/16 Python
施华洛世奇天猫官方旗舰店:SWAROVSKI
2017/04/17 全球购物
员工自我鉴定
2013/10/09 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
吴仁宝观后感
2015/06/09 职场文书
爱国电影观后感
2015/06/19 职场文书
Django使用redis配置缓存的方法
2021/06/01 Redis
python神经网络 使用Keras构建RNN训练
2022/05/04 Python