千家信息网

laravel怎么用中间件做防非法登录和权限控制

发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,本文小编为大家详细介绍"laravel怎么用中间件做防非法登录和权限控制",内容详细,步骤清晰,细节处理妥当,希望这篇"laravel怎么用中间件做防非法登录和权限控制"文章能帮助大家解决疑惑,下面跟
千家信息网最后更新 2025年11月17日laravel怎么用中间件做防非法登录和权限控制

本文小编为大家详细介绍"laravel怎么用中间件做防非法登录和权限控制",内容详细,步骤清晰,细节处理妥当,希望这篇"laravel怎么用中间件做防非法登录和权限控制"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

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怎么用中间件做防非法登录和权限控制"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0