什麼是中介軟體?聽滅絕師太趣說laravel中介軟體

來源:互聯網
上載者:User

什麼是中介軟體?聽滅絕師太趣說laravel中介軟體(圖)

這篇文章主要介紹了關於什麼是中介軟體?聽妙絕師太趣說laravel中介軟體(圖),有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

什麼是中介軟體?中介軟體顧名思義就是中間的件, 中間的層, 過濾一些請求的, 例如一些簡單的token驗證;以下文章詳細講解了laravel定義中介軟體和註冊中介軟體的方法和技巧。

一.定義中介軟體

標註的laravel可以直接在命令裡面定義

php artisan make:middleware CheckToken

這樣就建立好了一個叫CheckToken的中介軟體類, 這個類在/app/Http/Middleware目錄下:

點開以後代碼長這樣:

然後就可以去裡面寫點東西. 例如:

public function handle($request, Closure $next){    if($request->input('token')!='minxintoken'){        return redirect()->to('http://www.baidu.com');    }    return $next($request);}

意思很明顯, 如果發送過來的資料裡面'token'欄位不等於minxintoken那麼就自動跳轉到http://www.baidu.com

當然了到此為止只是建立好了一個叫CheckToken的中介軟體, 並沒有啟用; 現在開始啟用;

二.註冊中介軟體

所謂的啟用, 就是將這個中介軟體註冊到指定路由中;

註冊分兩種, 全域中介軟體和指定路由中介軟體,

1. 全域中介軟體:

只要把相應中介軟體添加到app/Http/Kernel.php的數組屬性$middleware中就ok: (原文直接寫的CheckToken::class是不行的 會報App\Http\CheckToken不存在, 需要加上CheckToken.php的namespace才能正確擷取到CheckToken)

正解如下:

瀏覽器直接輸入sample.test/about就會直接蹦到www.baidu.com去, 但是這麼玩就不會:

ok全域註冊到此為止. 一般來說全域設定不建議也不贊成, 因為每次都要帶上token確實是煩球;

2.然後就來看看指定路由的中介軟體,

這種中介軟體, 首先需要在app/Http/Kernel.php中分配給中介軟體一個key, 添加在該檔案的$routeMiddleware裡面, 原裡面已經有很多個預設的key, 在後面追加一個就行:

加好了key以後, 去路由檔案裡面啟用

Route::get('/','StaticPagesController@home')->middleware('token');

這樣訪問瀏覽器的效果就是直接輸sample.test/會重新導向到百度, 而輸sample.test/?token=minxintoken就能進入到首頁

當然了, 這樣有個弊端就是來一個路由, 要用就要敲一下, 不正常; 所以還有一個騷操作就是在Kernel.php檔案裡面有一個叫$middlewareGroups的數組: 我們在web裡面把我們剛剛建立的CheckToken加進去,

然後所有的/route/web.php裡面的東西就要token=minxintoken才能訪問了;例如什麼sample.test/ sample.test/about sample.test/help 等等;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.