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
BBS(php & mysql)完整版(五)
Oct 09 PHP
ajax php 实现写入数据库
Sep 02 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
Jun 18 PHP
PHP二维数组排序的3种方法和自定义函数分享
Apr 09 PHP
PHP页面实现定时跳转的方法
Oct 31 PHP
php采用ajax数据提交post与post常见方法总结
Nov 10 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
php 可变函数使用小结
Jun 12 PHP
PHP与Web页面的交互示例详解一
Aug 04 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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的宝库目录--PEAR
2006/10/09 PHP
PHP新手上路(十二)
2006/10/09 PHP
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
js Function类型
2011/12/04 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
JS实现的样式切换功能tableCSS实例
2016/12/30 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
[01:07]DOTA2次级职业联赛 - Fpb战队宣传片
2014/12/01 DOTA
python标准日志模块logging的使用方法
2013/11/01 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
Pytorch to(device)用法
2020/01/08 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
旅游专业职业生涯规划范文
2014/01/13 职场文书
技校个人求职信范文
2014/01/25 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
2014年国庆节广播稿
2014/09/19 职场文书
学生未请假就回家检讨书
2014/09/22 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
干部培训工作总结2015
2015/05/25 职场文书
入团申请书格式
2019/06/20 职场文书