laravel利用中間件做防非法登錄和權(quán)限控制示例
laravel框架的中間件非常好用,使得我們的防非法和rbac可以簡(jiǎn)單快速的實(shí)現(xiàn)
中間件就是控制路由的訪問,進(jìn)行分類并統(tǒng)一管理
1、首先我們打開artisan輸入下面的命令行,創(chuàng)建一個(gè)中間件文件
php artisan make:middleware AdminLogin
執(zhí)行命令后我們會(huì)發(fā)現(xiàn)Middleware文件夾會(huì)多出一個(gè)AdminLogin文件
2、然后我們打開kernel.php,將這個(gè)中間件加入到路由中間件中
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,
];
可以看到我們?cè)谶@個(gè)數(shù)組用一個(gè)下標(biāo)為admin.login指向了這個(gè)中間節(jié)類
3、然后在路由上將這個(gè)中間件加入關(guān)聯(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');
//后臺(tái)首頁路由
});
這里一定要將登錄的路由和后臺(tái)路由放到一個(gè)關(guān)聯(lián)中間件中,只有放到同一個(gè)中間件中,session才能共用
4、最后我們?cè)贛iddleware下的AdminLogin.php中修改一下原本的代碼
在這里我們做一個(gè)簡(jiǎn)單的小判斷,判斷一下有沒有session存在,如果有的話就直接走我們現(xiàn)在訪問的路由,如果沒有session就給他重定向到登錄頁面
一個(gè)簡(jiǎn)單的防非法登錄就可以用了
這種方法我們也可以拿來做rbac,也是建立一個(gè)中間件,進(jìn)行session判斷,查庫中該管理員是否對(duì)有該權(quán)限訪問該路由
此時(shí)您可能會(huì)用到
$route = $request->path();
他的作用就是獲取到你當(dāng)前訪問的路由再進(jìn)行判斷可不可以訪問
以上這篇laravel利用中間件做防非法登錄和權(quán)限控制示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- laravel在中間件內(nèi)生成參數(shù)并且傳遞到控制器中的2種姿勢(shì)
- 淺談Laravel中的三種中間件的作用
- Laravel獲取當(dāng)前請(qǐng)求的控制器和方法以及中間件的例子
- Laravel框架控制器的middleware中間件用法分析
- laravel利用中間件防止未登錄用戶直接訪問后臺(tái)的方法
- Laravel 6 將新增為指定隊(duì)列任務(wù)設(shè)置中間件的功能
- laravel框架中間件 except 和 only 的用法示例
- Laravel5.1框架注冊(cè)中間件的三種場(chǎng)景詳解
- 淺談laravel中間件的創(chuàng)建思路
相關(guān)文章
PHP實(shí)現(xiàn)留言板功能的詳細(xì)代碼
這篇文章主要為大家詳細(xì)介紹了PHP實(shí)現(xiàn)留言板功能的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
php實(shí)現(xiàn)memcache緩存示例講解
共享內(nèi)存是一種在相同機(jī)器中的應(yīng)用程序之間交換數(shù)據(jù)的有效方式,本文說的是php實(shí)現(xiàn)memcache緩存示例,大家參考使用吧2013-12-12
PHP7 安裝event擴(kuò)展的實(shí)現(xiàn)方法
這篇文章主要介紹了PHP7 安裝event擴(kuò)展的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
laravel http 自定義公共驗(yàn)證和響應(yīng)的方法
今天小編就為大家分享一篇laravel http 自定義公共驗(yàn)證和響應(yīng)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09
深入剖析瀏覽器退出之后php還會(huì)繼續(xù)執(zhí)行么
覽器退出之后php還會(huì)繼續(xù)執(zhí)行么?下面小編就為大家介紹一下究竟覽器退出之后php還會(huì)不會(huì)繼續(xù)執(zhí)行。一起跟隨小編過來看看吧2016-05-05
Laravel 錯(cuò)誤提示本地化的實(shí)現(xiàn)
今天小編就為大家分享一篇Laravel 錯(cuò)誤提示本地化的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10
在Ubuntu 14.04上部署 PHP 環(huán)境及 WordPress
Ubuntu確實(shí)很好玩。有喜歡的命令行,簡(jiǎn)潔的界面,不同于Window要的感覺。偶爾換換環(huán)境工作,學(xué)習(xí)Linux的思維方式,是一種不錯(cuò)的做法。之前也折騰過Ubuntu,想在Linux下學(xué)習(xí)某些開發(fā)(主要還是和代碼打交道),Ubuntu當(dāng)然是最好不過的選擇,并且剛發(fā)布了14.04版本2014-09-09

