真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何創(chuàng)建laravelHTTP中間件

本篇文章為大家展示了如何創(chuàng)建laravel HTTP中間件,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營(yíng)銷推廣、網(wǎng)站重做改版、金臺(tái)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)商城網(wǎng)站定制開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為金臺(tái)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

中間件其實(shí)就是在路由上面加了一層過(guò)濾或是一層保護(hù),前綴和命名空間都是作為group的數(shù)組參數(shù)傳進(jìn)去的,中間件也是作為group的數(shù)組參數(shù)傳進(jìn)去

一、中間件書(shū)寫(xiě)

添加中間件前

Route::group(['prefix' => 'admin','namespace'=>'Admin'], function () {
Rount::get('login','IndexController@login');
Rount::get('index','IndexController@index');
});

添加web中間件后

Route::group(['prefix' => 'admin','namespace'=>'Admin','middleware'=>['web']], function () {
Rount::get('login','IndexController@login');
Rount::get('index','IndexController@index');
});

web中間件可以用session功能,啟用CSRF保護(hù)

Route::get('/',function(){
session(['key'=>123]);
return view('welcome');
});

再設(shè)置一個(gè)路由,用來(lái)輸出session

Route::get('/test',function(){
echo session('key');
return 'test';
});

但因?yàn)椴辉谝粋€(gè)中間件里,所以取不出session的值

下面我們?cè)O(shè)置一下把路由放到一個(gè)分組的中間件

Route::group(['middleware'=>['web']], function () {
Route::get('/',function(){
session(['key'=>123]);
return view('welcome');
});
Route::get('/test',function(){
echo session('key');
return 'test';
});
});

系統(tǒng)默認(rèn)的web中間件,中間件在Kernel.php中

使用web中間件時(shí),才會(huì)使用session

二、自己手動(dòng)在Kernel.php文件中定義一個(gè)后臺(tái)管理云登錄的中間件

定義前:

protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    ];

定義后:

protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
 'admin.login' => \App\Http\Middleware\AdminLogin::class,
    ];

在cmd窗口切換到項(xiàng)目目錄可以用命令創(chuàng)建中間件

php artisan make:middleware AdminLogin

然后在Middleware文件夾查看AdminLogin.php文件

然后調(diào)用剛才創(chuàng)建的中間件

Route::group(['middleware'=>['web','admin.login'],], function () {
Route::get('/',function(){
session(['key'=>123]);
return view('welcome');
});
Route::get('/test',function(){
echo session('key');
return 'test';
});
});

三、后臺(tái)超級(jí)管理員的驗(yàn)證

Route::group(['prefix' => 'admin','namespace'=>'Admin','middleware'=>'web'], function () {
Rount::get('login','IndexController@login');//登錄不需要后臺(tái)管理員的超級(jí)認(rèn)證
});
Route::group(['prefix' => 'admin','namespace'=>'Admin','middleware'=>'admin.login'], function () {
Rount::get('index','IndexController@index');//超級(jí)管理員需要認(rèn)證后才能進(jìn)入歡迎頁(yè)面和編輯頁(yè)面
Rount::resource('article','ArticleController');
});

任何一個(gè)用戶都可以登錄,但是如果登錄了成功,就進(jìn)入歡迎頁(yè)面,沒(méi)有登錄成功就在登錄頁(yè)面,因?yàn)榈卿浀男畔⒋娴絪ession里,所以我們利用session的信息判斷是否登錄

模擬登錄是將登錄信息寫(xiě)到session里面,然后找到Admin包下IndexController控制器

1]); //登錄信息用admin存儲(chǔ)
     return '

登錄

'    } }

我們?cè)谥虚g件里輸出session測(cè)試一下

然后在Middleware文件夾查看AdminLogin.php文件

驗(yàn)證:

我們先登錄一下,然后訪問(wèn)歡迎頁(yè)面,如果輸出1,表示我們?cè)O(shè)置成功了(登錄時(shí)把1存到session里,然后進(jìn)入歡迎頁(yè)面,歡迎頁(yè)面會(huì)調(diào)用中間件的AdminLogin.php,),

我們繼續(xù)設(shè)置

Middleware文件夾的AdminLogin.php文件

上述內(nèi)容就是如何創(chuàng)建laravel HTTP中間件,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享標(biāo)題:如何創(chuàng)建laravelHTTP中間件
標(biāo)題網(wǎng)址:http://weahome.cn/article/pjggpg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部