laravel利用中间件做防非法登录和权限控制
来源:互联网 发布:Java 排序算法 编辑:程序博客网 时间:2024/06/12 18:52
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();他的作用就是获取到你当前访问的路由再进行判断可不可以访问
0 0
- laravel利用中间件做防非法登录和权限控制
- Laravel 权限控制整理--中间件
- Laravel-使用中间件做用户认证和权限管理
- laravel利用中间件防止未登录用户直接访问后台
- laravel权限控制(登录,增删改查权限)
- laravel一步步实现权限控制(2) 登录重写
- 权限控制中间件
- 中间件之权限控制
- CI 框架利用hooks 做登录/权限验证
- Laravel 权限控制整理--Auth
- TP3.2中session实现防非法登录
- laravel 中间件
- Laravel中间件
- laravel中间件
- laravel中间件
- laravel中间件
- Laravel中间件
- Laravel中间件
- OkHttp使用进阶 译自OkHttp Github官方教程
- 464. Can I Win(something needed to be solved!)
- Android6.0的权限管理(相机权限的举例)
- MySQL 5.6 (Win7 64位)下载、安装与配置图文教程
- go 判断一个文件是否存在
- laravel利用中间件做防非法登录和权限控制
- Java实现了一个万年历
- VC读取EXCEL文件
- 实战录|听“老司机”谈谈分布式集群高并发问题
- url抓包分析
- bzoj 2733: [HNOI2012]永无乡 (线段树合并)[省选计划系列]
- 分布式消息中间件 MetaQ (庄晓丹)
- 【强烈推荐】开源C#工具类MSCL系列(五)Cookie帮助类
- 老鸟谈谈JAVA EE的学习