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 相关文章推荐
在smarty模板中使用PHP函数的方法
Apr 23 PHP
CI框架中集成CKEditor编辑器的教程
Jun 09 PHP
PHP实现生成透明背景的PNG缩略图函数分享
Jul 08 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
php编程每天必学之验证码
Mar 03 PHP
详解Yii2 之 生成 URL 的方法
Jun 16 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
PHP+MySql实现一个简单的留言板
Jul 19 PHP
php swoft框架实例用法
Dec 22 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面向对象 字段的声明与使用
2012/06/14 PHP
比较简单的百度网盘文件直链PHP代码
2013/03/24 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
php中explode函数用法分析
2014/11/15 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
jQuery使用方法
2017/02/04 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
python已协程方式处理任务实现过程
2019/12/27 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
银行行长竞聘演讲稿
2014/04/23 职场文书
小学毕业演讲稿
2014/04/25 职场文书
公司运动会策划方案
2014/05/25 职场文书
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
幼儿园个人总结
2015/02/28 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书