beego.InsertFilter(pattern string, position int, filter FilterFunc, params ...bool)
pattren 路由規則,可以根據一定的規則進行路由,如果你全匹配可以用
position執行Filter的地方,五個固定參數如下,分別表示不同的執行過程時間點
BeforeStatic 靜態地址之前
BeforeRouter 尋找路由之前
BeforeExec 找到路由之后,開始執行響應的Controller之前
AfterExce 執行完Controller邏輯之后執行的過濾器
FinishRouter 執行邏輯之后執行的過濾器
var BeforeExecFunc = func(ctx *context.Context) { userName := ctx.Input.Session("userName") if userName == nil{ ctx.Redirect("/login", 302) } ) beego.InsertFilter("/login", beego.BeforeExec, BeforeExecFunc)
注意:導包要導入beego的context import “github.com/astaxie/beego/context” func init() { beego.InsertFilter("?=/Article/*", beego.BeforeRouter, FilterFunc) } var FilterFunc = func(ctx *context.Context)() { userName := ctx.Input.Session("userName") if userName == nil { ctx.Redirect() } }
過濾器,過濾出需要驗證登陸的路由,驗證session。