laravel利用中间件做防非法登录和权限控制示例

 更新时间:2019年10月21日 10:29:01   作者:Mr_xiaqy  
今天小编就为大家分享一篇laravel利用中间件做防非法登录和权限控制示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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利用中间件做防非法登录和权限控制示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • ThinkPHP在Cli模式下使用模板引擎的方法

    ThinkPHP在Cli模式下使用模板引擎的方法

    这篇文章主要介绍了ThinkPHP在Cli模式下使用模板引擎的方法,实例分析了ThinkPHP基于Cli模式操作模板的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • php面向对象与面向过程两种方法给图片添加文字水印

    php面向对象与面向过程两种方法给图片添加文字水印

    使用许多编程语言时,你通常只能使用面向对象或面向过程二者之一的编程方式。而在PHP中,你可以自由选择或混用,下面通过面向对象与面向过程两种方法给图片添加水印,需要的朋友可以参考下
    2015-08-08
  • Laravel中9个不经常用的小技巧汇总

    Laravel中9个不经常用的小技巧汇总

    这篇文章主要给大家总结介绍了关于Laravel中9个不经常用的小技巧,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法

    ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法

    这篇文章主要介绍了ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法,针对ThinkPHP配置文件config.php设置SHOW_RUN_TIME后不能显示运行时间情况下的解决方法,涉及针对ThinkPHP底层源文件的修改,需要的朋友可以参考下
    2015-10-10
  • Yii2 批量插入、更新数据实例

    Yii2 批量插入、更新数据实例

    这篇文章主要介绍了Yii2 批量插入、更新数据实例的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • 服务器迁移php版本不同可能诱发的问题

    服务器迁移php版本不同可能诱发的问题

    今天在服务器做了迁移以后,前台可以正常显示和调用,登陆后台显示500错误,一般这种情况下都要查看核心跳转文件,经查看发现login.php文件并没有调用.因为找不到login.php文件,那就证明这个文件里是有语法错误
    2015-12-12
  • PHP下载文件的函数实例代码

    PHP下载文件的函数实例代码

    本文通过实例代码给大家介绍php下载文件的函数相关知识,介绍的非常详解,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-05-05
  • PHPStrom 新建FTP项目以及在线操作教程

    PHPStrom 新建FTP项目以及在线操作教程

    PhpStorm是一个轻量级且便捷的PHP IDE,其提供的智能代码补全,快速导航以及即时错误检查等功能大大提高了编码效率。它是一款商业的 PHP 集成开发工具,以其独特的开发便利性,短时间内赢得了大量PHPer的青睐。今天我们来详细学习下FTP相关的操作
    2016-10-10
  • 浅谈laravel中的关联查询with的问题

    浅谈laravel中的关联查询with的问题

    今天小编就为大家分享一篇浅谈laravel中的关联查询with的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • php实现微信企业转账功能

    php实现微信企业转账功能

    这篇文章主要为大家详细介绍了php实现微信企业转账功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10

最新评论