laravel利用中間件做防非法登錄和權限控制示例
laravel框架的中間件非常好用,使得我們的防非法和rbac可以簡單快速的實現(xiàn)
中間件就是控制路由的訪問,進行分類并統(tǒng)一管理
1、首先我們打開artisan輸入下面的命令行,創(chuàng)建一個中間件文件
php artisan make:middleware AdminLogin
執(zhí)行命令后我們會發(fā)現(xiàn)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, ];
可以看到我們在這個數(shù)組用一個下標為admin.login指向了這個中間節(jié)類
3、然后在路由上將這個中間件加入關聯(lián)上
Route::group(['middleware' => ['web','admin.login.login']], function () { Route::get('/admin/login/login','Admin\LoginController@login'); //登錄頁面 Route::get('/admin/index/index','Admin\IndexController@index'); //后臺首頁路由 });
這里一定要將登錄的路由和后臺路由放到一個關聯(lián)中間件中,只有放到同一個中間件中,session才能共用
4、最后我們在Middleware下的AdminLogin.php中修改一下原本的代碼
在這里我們做一個簡單的小判斷,判斷一下有沒有session存在,如果有的話就直接走我們現(xiàn)在訪問的路由,如果沒有session就給他重定向到登錄頁面
一個簡單的防非法登錄就可以用了
這種方法我們也可以拿來做rbac,也是建立一個中間件,進行session判斷,查庫中該管理員是否對有該權限訪問該路由
此時您可能會用到
$route = $request->path();
他的作用就是獲取到你當前訪問的路由再進行判斷可不可以訪問
以上這篇laravel利用中間件做防非法登錄和權限控制示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
深入剖析瀏覽器退出之后php還會繼續(xù)執(zhí)行么
覽器退出之后php還會繼續(xù)執(zhí)行么?下面小編就為大家介紹一下究竟覽器退出之后php還會不會繼續(xù)執(zhí)行。一起跟隨小編過來看看吧2016-05-05在Ubuntu 14.04上部署 PHP 環(huán)境及 WordPress
Ubuntu確實很好玩。有喜歡的命令行,簡潔的界面,不同于Window要的感覺。偶爾換換環(huán)境工作,學習Linux的思維方式,是一種不錯的做法。之前也折騰過Ubuntu,想在Linux下學習某些開發(fā)(主要還是和代碼打交道),Ubuntu當然是最好不過的選擇,并且剛發(fā)布了14.04版本2014-09-09