中介軟體
概述
中介軟體提供了一個方便的機制,用於檢查和過濾進入您應用程序的 HTTP 請求。
定義中介軟體
您可以在 app/http/middleware
目錄中創建自己的中介軟體,結構如下。
go
package middleware
import (
"github.com/goravel/framework/contracts/http"
)
func Auth() http.Middleware {
return func(ctx http.Context) {
ctx.Request().Next()
}
}
通過命令創建中介軟體
go run . artisan make:middleware Auth
// 支持嵌套文件夾
go run . artisan make:middleware user/Auth
註冊中介軟體
全局中介軟體
如果您希望在應用程序的每個 HTTP 請求中應用中介軟體,您只需在 app/http/kernel.go
文件中的 Middleware
中註冊中介軟體。
go
// app/http/kernel.go
package http
import (
"github.com/goravel/framework/contracts/http"
"goravel/app/http/middleware"
)
type Kernel struct {
}
func (kernel *Kernel) Middleware() []http.Middleware {
return []http.Middleware{
middleware.Auth(),
}
}
為路由分配中介軟體
您可以單獨為某些路由註冊中介軟體:
go
import "github.com/goravel/framework/http/middleware"
facades.Route().Middleware(middleware.Auth()).Get("users", userController.Show)
中止請求
在中介軟體中,如果您需要中止請求,可以使用 Abort
方法。
go
ctx.Request().Abort()
ctx.Request().Abort(http.StatusNotFound)
ctx.Response().String(http.StatusNotFound, "找不到").Abort()