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桌面中心(四) 数据显示
Mar 11 PHP
实用函数10
Nov 08 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
Feb 16 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
Sep 16 PHP
使用phpQuery采集网页的方法
Nov 13 PHP
10个超级有用的PHP代码片段果断收藏
Sep 23 PHP
学习php设计模式 php实现策略模式(strategy)
Dec 07 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
Sep 30 PHP
ThinkPHP框架实现数据增删改
May 07 PHP
PHP编程实现脚本异步执行的方法
Aug 09 PHP
微信小程序和php的登录实现
Apr 01 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 删除记录实现代码
2009/03/12 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
php上传图片并压缩的实现方法
2015/12/22 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
背景音乐每次刷新都可以自动更换
2007/02/01 Javascript
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
jquery分页插件pagination使用教程
2018/10/23 jQuery
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
js 函数性能比较方法
2020/08/24 Javascript
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
用Python给文本创立向量空间模型的教程
2015/04/23 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
python实现手机销售管理系统
2019/03/19 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
装潢设计实习自我鉴定
2013/09/19 职场文书
网上蛋糕店创业计划书
2014/01/24 职场文书
房屋所有权证明
2014/10/20 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
教师学习中国梦心得体会
2016/01/05 职场文书
创业计划书之养殖业
2019/10/11 职场文书
Java设计模式之享元模式示例详解
2022/03/03 Java/Android