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 相关文章推荐
图象函数中的中文显示
Oct 09 PHP
php 编写安全的代码时容易犯的错误小结
May 20 PHP
PHP安全配置详细说明
Sep 26 PHP
php 使用array函数实现分页
Feb 13 PHP
浅谈PHP中foreach/in_array的使用
Nov 02 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
php实现微信企业付款到个人零钱功能
Oct 09 PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 PHP
laravel model 两表联查示例
Oct 24 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
Apr 29 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过滤危险html代码
2008/08/18 PHP
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
一个简单的js动画效果代码
2010/07/20 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
Python基于property实现类的特性操作示例
2018/06/15 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
pytorch masked_fill报错的解决
2020/02/18 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
C#面试问题
2016/07/29 面试题
教师实习自我鉴定
2013/12/13 职场文书
贷款委托书范本
2014/04/08 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
大学生毕业个人总结
2015/02/15 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
教师网络培训心得体会
2016/01/09 职场文书
Python 语言实现六大查找算法
2021/06/30 Python