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,js双版本
Sep 25 PHP
php的一个简单加密解密代码
Jan 14 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
php中动态变量用法实例
Jun 10 PHP
PHP读取文件内容的五种方式
Dec 28 PHP
PHP错误机制知识汇总
Mar 24 PHP
总结PHP中DateTime的常用方法
Aug 11 PHP
PHP数组编码gbk与utf8互相转换的两种方法
Sep 01 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
laravel实现前后台路由分离的方法
Oct 13 PHP
PHP高并发和大流量解决方案整理
Dec 24 PHP
基于PHP实现堆排序原理及实例详解
Jun 19 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的库,结果发现很多东西
2006/12/31 PHP
php 购物车实例(申精)
2009/05/11 PHP
php 图片上添加透明度渐变的效果
2009/06/29 PHP
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
用JavaScript隐藏控件的方法
2009/09/21 Javascript
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
几行js代码实现自适应
2017/02/24 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
javascript函数的节流[throttle]与防抖[debounce]
2017/11/15 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
详解50行代码,Node爬虫练手项目
2019/04/22 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
Unix/Linux开发面试题
2016/08/16 面试题
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
运动会稿件100字
2014/02/21 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
商务日语专业自荐信
2014/04/17 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
CAD实训总结范文
2015/08/03 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python