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设计模式之命令模式使用示例
Mar 02 PHP
php将字符串转换成16进制的方法
Mar 17 PHP
php判断表是否存在的方法
Jun 18 PHP
PHP会话处理的10个函数
Aug 11 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Dec 14 PHP
使用PHPWord生成word文档的方法详解
Jun 06 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
Aug 17 PHP
WordPress伪静态规则设置代码实例
Dec 10 PHP
如何用Laravel包含你自己的帮助函数
May 27 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 Calender(日历)代码分享
2014/01/03 PHP
php去除字符串换行符示例分享
2014/02/13 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
js实现表格筛选功能
2017/01/18 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
Python用GET方法上传文件
2015/03/10 Python
python 中的int()函数怎么用
2017/10/17 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
Python解决八皇后问题示例
2018/04/22 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
python处理RSTP视频流过程解析
2020/01/11 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
校园绿化美化方案
2014/06/08 职场文书
采购部长岗位职责
2014/06/13 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
内勤岗位职责范本
2015/04/13 职场文书