如何在 Laravel 中設置和管理Middleware


Middleware 是 Laravel 中的一個強大功能,允許你在請求進入應用程式之前進行過濾和處理。Middleware 提供了一種方便的機制來檢查和過濾 HTTP 請求,讓你能夠執行各種任務,如身份驗證、日誌記錄等。

本文將介紹如何在 Laravel 應用程式中設置和管理 Middleware。

什麼是 Middleware?

Middleware 就像是請求和響應之間的橋樑。它是一系列的層,請求在到達應用程式之前必須經過這些層。Middleware 可以用來執行以下任務:

  • 身份驗證和授權
  • 請求日誌記錄
  • 請求數據的修改
  • 跨站請求偽造(CSRF)保護

設置 Middleware

在 Laravel 中創建 Middleware 非常簡單。你可以使用 Artisan 命令來生成一個 Middleware:

這將在 app/Http/Middleware 目錄中創建一個名為 CheckAge 的 Middleware 文件。打開這個文件,你會看到如下代碼:

在這個範例中,handle 方法會檢查請求中的 age 參數。如果 age 小於等於 200,請求將被重定向到 home 頁面,否則請求會繼續進行。

註冊 Middleware

創建 Middleware 後,你需要將它註冊到應用程式中。這可以在 app/Http/Kernel.php 文件中完成。有幾種方式可以註冊 Middleware:

1.全局 Middleware:在所有請求中都會運行的 Middleware。在 app/Http/Kernel.php 文件中的 $middleware 屬性中註冊

2.路由 Middleware:只在特定路由中運行的 Middleware。可以在 $routeMiddleware 屬性中註冊。

然後,你可以在路由中使用這個 Middleware:

3.Middleware 組:一組 Middleware 可以一起應用到某些路由中。例如,web 和 api 組在 Kernel.php 中預設定義。

管理 Middleware

你可以使用 Middleware 來管理應用程式的許多方面。例如,你可以創建一個 Middleware 來記錄所有的請求,或是驗證用戶是否具有訪問特定資源的權限。

日誌記錄 Middleware 範例

以下是一個簡單的日誌記錄 Middleware 範例,它會記錄每個進來的請求:

創建這個 Middleware 後,將它註冊為全局或路由 Middleware,這樣每次請求都會被記錄下來。

結論

Middleware 是 Laravel 中處理 HTTP 請求的一個重要組成部分。通過設置和管理 Middleware,你可以輕鬆地處理請求過程中的各種需求,如身份驗證、日誌記錄、請求數據處理等。希望這篇文章能幫助你更好地理解和使用 Laravel 中的 Middleware。